下面的代码应该检查单元格是否为空,如果是空的,则将B26的内容粘贴到该单元格中。如果单元格不为空,则继续检查其下方的单元格。我尝试使用Access 2013
Access 2007
Access 2003
Aliens
Excel 2007
Excel 2003
Everybody is happy
Powerpoint 2007
Powerpoint 2003
但是没有用,所以我认为Excel将所有空单元格默认为0.所以我尝试使用IsEmpty
(如下面的代码所示)但这不起作用无论是。
Empty
答案 0 :(得分:5)
您可以使用
If Application.WorksheetFunction.CountA(Range("B27:C27")) = 0 Then
而不是
If Range("B27:C27") = Empty Then
顺便说一句,在粘贴数据之前无需选择范围。
此代码
Range("B27:C27").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
可以替换为
Range("B27:C27").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
答案 1 :(得分:4)
在VBA中使用Empty
或IsEmpty()
主要是为了查看变量是否已初始化,但通常会误用它来检查Range是否有值。
如果你想查看一个范围是否为“空”'然后使用:
If Range("B27").Value = vbNullString Then
'// Do Something
End If
如果要检查具有多个单元格的Range是否为空,则可以使用COUNTA()
参数:
If [COUNTA(B27:C27)=0] Then
'// Do Something
End If
(或使用WorksheetFunction类同样的事情......)
If WorksheetFunction.CountA(Range("B27:C27")) = 0 Then
'// Do Something
End If
答案 2 :(得分:0)
尝试IsEmpty
If IsEmpty(ws.Range("A1").Value) = True Then
End if
答案 3 :(得分:-2)
你试过吗
var = nz(YourValue,"")
然后用
进行检查If var = "" Then 'moar code
或只是检查
If nz(YourValue,"") = "" Then 'moar code