高分跪求一个用VBA写的excel的宏功能,各位大虾帮帮忙,不慎感激!

2024-11-19 03:43:30
推荐回答(2个)
回答1:

Sub program()
Range("O2:O" & Range("E65536").End(xlUp).Row).ClearContents 'clear remark
Range("O2:O" & Range("E65536").End(xlUp).Row).Interior.ColorIndex = xlNone '初始化备注填充色
For iCount = 2 To Range("E65536").End(xlUp).Row '从第二行开始到有时间的最后一行

'the first condition
If -4142 = Sheets("Sheet1").Range("E" & iCount & ":L" & iCount).Interior.ColorIndex Then '如果1到8时间的填充色都是空
Range("O" & iCount) = "没有填充色" '标注自己改
End If

'the second condition
If -4142 <> Sheets("Sheet1").Range("G" & iCount).Interior.ColorIndex Then '如果时间三填充色不为空
If -4142 = Sheets("Sheet1").Range("E" & iCount & ":F" & iCount).Interior.ColorIndex And -4142 = Sheets("Sheet1").Range("H" & iCount & ":J" & iCount).Interior.ColorIndex Then 'other interior color is xlnone
If Hour(Range("G" & iCount)) - Hour("18:00") >= 0 Then '如果时间大于等于18:00
Range("O" & iCount) = "仅时间3符合条件" '标注自己改
End If
End If
End If
Next iCount
End Sub

‘自己建一个宏,根据你自己的情况再改改就好了,给你的注释已经能看懂了

回答2:

按Alt+F11进入Visual Basic 编辑器窗口,在菜单栏中点击“插入”按钮-“模块”,在“工程资源管理器”窗口(左上角)中双击模块1,然后在出现的代码编辑窗口复制粘贴以下代码。
Sub aa()
Dim rng As Range, j
For Each rng In Range("e2:e" & [a65536].End(3).Row)
If -4142 = rng.Resize(1, 8).Interior.ColorIndex Then
rng(1, 11) = 0
End If
If -4142 <> rng(1, 3).Interior.ColorIndex Then
j = Hour(rng(1, 3)): If j = 0 Then j = 24
If j - 18 >= 0 And j - 24 <= 0 Then
rng(1, 11) = 1
End If
End If
Next
End Sub

完成后关闭Visual Basic 编辑器窗口,返回工作表。按Alt+F8,在弹出的“宏”对话框中点击“执行”按钮就可以了。
如果有问题记得HI我