我在Excel上工作,有2张名为“Releves”和“Observations”。我想根据观察表的一列单元格的内容为Releves表的一列着色。
声明就是这个声明:
如果 my_column_observations_sheet 的单元格不为空,则为黄色 my_column_releves_sheet 中的颜色。
我为每个循环制作了一个双重但它不起作用。当我运行脚本时,即使 my_column_observations_sheet 的单元格为空, my_column_releves_sheet 的所有单元格都会被着色...
这是我的剧本:
Sub condition()
Dim espece As Range
Dim num_releve As Range
ThisWorkbook.Sheets("Relevé").Activate
Set num_releve = ActiveSheet.Range("G3:G6")
ThisWorkbook.Sheets("Observations").Activate
Set espece = ActiveSheet.Range("B3:B6")
For Each i In espece
For Each j In num_releve
If Not IsNull(i.Value) Then j.Interior.ColorIndex = 6
Next
Next
End Sub
答案 0 :(得分:1)
For Each i In espece
For Each j In num_releve
If Not IsNull(i.Value) Then j.Interior.ColorIndex = 6
Next
Next
IsNull
无法像这样使用。空单元格值为空,而不是 null 。请改用IsEmpty
:
For Each i In espece
For Each j In num_releve
If Not IsEmpty(i.Value) Then j.Interior.ColorIndex = 6
Next
Next
这会将具有返回空字符串的公式的单元格视为非空单元格。
如果您需要将空值单元格视为空,请检查空字符串 - 但要注意错误值:
For Each i In espece
For Each j In num_releve
If Not IsError(i.Value) Then
If CStr(i.Value) <> vbNullString Then j.Interior.ColorIndex = 6
End If
Next
Next