多个单元格范围作为值
我是新来的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。 我真的很想成为一名职业球员。