用一个string值replace空白/空单元格

希望有人能帮忙。 我需要使用特定的string填充单元格范围内的任何空白/空单元格。 我也不知道最后一行会在这个范围内,所以我正在寻找第一个,我知道这行代码工作,因为我用它在脚本内的另一个function。 以下是我正在使用的代码:

LastRow = Cells(Rows.Count, 2).End(xlUp).Row For Each r In Range("AS22:AU" & LastRow) If r.Value2 = vbNullString Then r.Value2 = "Greens" End If Next 

我似乎没有得到任何编译错误,当我运行的代码,它只是不工作,我仍然有相同的空白/空单元格。

任何人都可以阐明我做错了什么?

您可以使用范围的.Replace方法 。 这会更快。

 Range("AS22:AU" & LastRow).Replace "", "Greens", xlWhole 

怎么样:

 Sub dural() Dim r As Range, LastRow As Long LastRow = Cells(Rows.Count, 2).End(xlUp).Row For Each r In Range("AS22:AU" & LastRow) If r.Text = "" Then r.Value = "Greens" Next r End Sub 

这将改变:

  • 真正的空细胞
  • 包含公式的单元格返回Null
  • 包含字符的单元格作为常量

使用IsEmpty()来testing空白。

  If IsEmpty(r.Value2) Or Trim(r.Value2) = "" Then r.Value2 = "Greens" End If 

还要注意零长度string或空格的单元格。 他们显得空虚,但实际上并不是。