多个单元格范围作为值

我是新来的VBA所以请原谅我的无知:)

我在编写(和理解)为什么我的代码不能在VBA中工作有困难。 我正在尝试引用多个单元格。 我的代码读取

If sheet4.range("G2:G26").value = "" Then Sheet4.range("G2:G26").value = "No Gas" Exit Sub End If End Sub 

我知道我不能使用多个单元格作为价值,但我将如何编写代码? 另外,为什么我不能使用多个单元格作为价值? 感谢大家的帮助

您可以一次将值分配给多个单元格:

 Sheet4.range("G2:G26").value = "No Gas" 

将在该范围内的每个细胞中放入No Gas

你不能testing整个范围对一个值,因为它是一个数组和数组不等于一个单一的值。

你可以迭代:

 Dim cell As Range For Each cell in Sheet4.range("G2:G26") If cell = "" then cell = "No Gas" End IF Next cell 

或者您可以select所有空白的并一次填充它们:

 Sheet4.range("G2:G26").SpecialCells(xlCellTypeBlanks) = "No Gas" 

或者只是replace所有空白单元格:

 sheet4.range("G2:G26").Replace "", "No Gas", xlWhole 

从你的post看来,你似乎想检查一个完整的范围对相同的价值

你可以这样做,如下所示:

 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 

谢谢大家的帮助。 斯科特的解决scheme完美运作 我正在尝试了解其他解决scheme。 我真的很想成为一名职业球员。