我有以下VBA代码为表格的单元格上色,这是查询的结果,可以一次又一次地更新。
Sub ColorMain()
Dim Data As Range
Dim cell As Range
Sheet1.Activate
Range("D7").Select
Range(Selection, Selection.End(xlDown)).Select
'clean the coloring
Set Data = Selection
Data.Interior.ColorIndex = 0
'apply the coloring
For Each cell In Data
If cell.Value = "X" Then
cell.Interior.ColorIndex = 22
ElseIf cell.Value = "Y" Then
cell.Interior.ColorIndex = 44
End If
Next
End Sub
我正在从另一个主Sub调用此Sub,该主Sub更新了SQL查询。运行主Sub时,着色适用于某些单元格,但并非全部。当我再次运行主Sub时,着色将适当地应用于所有单元格。
当我逐行运行着色Sub时,它可以完美运行。 为什么在调用main Sub时从第一次尝试开始就不起作用?我必须在某个地方暂停应用程序吗?
已编辑: Main Sub刷新了我在工作簿中的查询,并调用ColorMain:
Sub RefreshAll()
ActiveWorkbook.RefreshAll
Call ColorMain
End Sub