我想检查用户模块中的一段代码中的excel范围是否为空,我使用了下面的代码。
Worksheets(yearsheet).Range("N" & rownum & ":DI").Select
If Application.WorksheetFunction.CountA(Selection) = 0 Then
Exit Sub
End If
我得到了运行时错误1004。谁能告诉我的错误在哪里?
Thanks in advance.PS:rownum是整数变量,yearheet是字符串变量,这两个变量在上面的代码之前的代码中都是正确更新的。
"N" & rownum & ":DI"
并没有评估到一个真实的地址,因为它缺少了地址后半部分的行号。另外,你应该尽可能避免使用Select语句。
假设整个范围都在一行中,这就可以了。
Sub test()
Dim yearsheet As String
Dim rownum As Integer
yearsheet = "Sheet2"
rownum = 2
If Application.WorksheetFunction.CountA(Worksheets(yearsheet) _
.Range("N" & rownum & ":DI" & rownum)) = 0 Then
Exit Sub
End If
End Sub
在VBA中测试选择区是否为空的最好方法是:
'测试单元格的选择是否存在。@return true or falseFunction isCellSelection() As Boolean Dim r As range isCellSelection = False Set r = Selection.Cells If IsEmpty(r) Then isCellSelection = True End IfEnd Function ' isCellSelection