excel - 检查vba模块中的范围是否为空

标签 excel vba

我想检查用户模块中一段代码中的excel范围是否为空。
我使用了下面的代码

Worksheets(yearsheet).Range("N" & rownum & ":DI").Select
If Application.WorksheetFunction.CountA(Selection) = 0 Then
    Exit Sub
End If

我收到运行时错误 1004。谁能告诉我的错误是什么?

提前致谢。
PS:rownum 是整数变量,yearsheet 是字符串变量。在上述代码部分之前,这两个变量都已在代码中正确更新

最佳答案

"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

关于excel - 检查vba模块中的范围是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790662/

相关文章:

python - 读取 pandas 中的 excel 文件 - 带有 NaN 标题的列

vba - 如何获得一个函数来引用它所在的单元格?

excel - VBA - 为什么 VBA UDF 与 native Excel 函数相比这么慢?

调用具有多个参数的 Sub 时 VBA 返回错误

mysql - 将数据行转换为类似于数据透视表但具有实际值的表

Excel VBA - 交叉引用书签/表单字段到 Word

vba - (Excel) 如何提取每一列(并将其保存)为其自己的 CSV 文件?

python - Python 中的哪种数据结构可用于替换 Excel 2-dim 字符串/数量数组?

vba - Excel VBA AVERAGE(可变范围)

vba - 通过 VBA 代码将单个 Excel 工作表保存为单独的 PDF 文件