我想检查用户模块中代码段中的excel范围是否为空。 我使用下面的代码
Worksheets(yearsheet).Range("N" & rownum & ":DI").Select
If Application.WorksheetFunction.CountA(Selection) = 0 Then
Exit Sub
End If
我收到运行时错误1004.有人能说出我的错误吗?
提前致谢。 PS:rownum是整数变量,yearsheet是字符串变量。这些变量在代码的上一部分
之前的代码中正确更新答案 0 :(得分:2)
"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
答案 1 :(得分:-1)
在VBA中测试选择是否为空的最佳方法:
' Tests if a selection of cells exists. ' @return true or false Function isCellSelection() As Boolean Dim r As range isCellSelection = False Set r = Selection.Cells If IsEmpty(r) Then isCellSelection = True End If End Function ' isCellSelection