我是VBA的新手所以请原谅我的无知:)
我在编写(和理解)为什么我的代码不在VBA中工作时遇到了麻烦。我试图引用多个细胞。我的代码是
If sheet4.range("G2:G26").value = "" Then
Sheet4.range("G2:G26").value = "No Gas"
Exit Sub
End If
End Sub
我知道我不能使用多个单元格作为值,但是如何编写代码呢?另外,为什么我不能使用多个单元格作为值?谢谢大家的帮助
答案 0 :(得分:5)
您可以一次为多个单元格分配值:
Sheet4.range("G2:G26").value = "No Gas"
会将No Gas
放在范围内的每个单元格中。
您无法针对一个值测试整个范围,因为它是一个数组且数组不等于单个值。
你可以迭代:
Dim cell As Range
For Each cell in Sheet4.range("G2:G26")
If cell = "" then
cell = "No Gas"
End IF
Next cell
或者您可以选择所有空白的并一次填写:
Sheet4.range("G2:G26").SpecialCells(xlCellTypeBlanks) = "No Gas"
答案 1 :(得分:1)
或者只是替换所有空白单元格:
sheet4.range("G2:G26").Replace "", "No Gas", xlWhole
答案 2 :(得分:0)
在您的帖子中,您似乎想要针对相同的值检查整个范围
您可以按照以下方式执行此操作:
With sheet4.Range("G2:G26") '<--| reference your range
If WorksheetFunction.CountIf(.Cells, "mysearchedvalue")= .Count Then .Value = "mysubstitutevalue"
End With
如果您想针对空白内容检查整个范围,那么您可以使用以下代码:
With sheet4.Range("G2:G26") '<--| reference your range
If WorksheetFunction.CountBlank(.Cells)= .Count Then .Value = "No Gas"
End With
答案 3 :(得分:0)
谢谢大家的帮助。斯科特的解决方案非常有效。我也试图了解其他解决方案。我真的想成为一名专业人士。