You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA运行时错误1004:Global对象Range方法调用失败求助

解决VBA统计选区行数的问题

嘿,我来帮你搞定这个代码问题~

首先看你当前的代码,问题出在最后一行的Range("rng")上:你已经通过InputBox把用户选择的区域赋值给了变量rng,但这里的Range("rng")是在尝试引用名为"rng"的命名区域,而不是你刚才定义的变量!所以直接用变量名rng就好啦。

修正后的输入框选区代码

Sub test()
    Dim rng As Range
    Set rng = Application.InputBox("Select range: ", "Select range", Type:=8)
    MsgBox rng.Rows.Count  ' 直接使用变量rng,无需加Range()包裹
End Sub

预先定义命名区域"rng"的情况

如果已经在工作表里定义了名为"rng"的命名区域,那可以直接引用这个区域统计行数,不用再让用户选择。这里建议加个错误处理,防止命名区域不存在时代码崩溃:

Sub CountNamedRangeRows()
    Dim rng As Range
    ' 临时跳过错误,检查命名区域是否存在
    On Error Resume Next
    Set rng = ThisWorkbook.Names("rng").RefersToRange
    On Error GoTo 0
    
    If Not rng Is Nothing Then
        MsgBox "命名区域rng的行数是:" & rng.Rows.Count
    Else
        MsgBox "未找到名为rng的命名区域哦!"
    End If
End Sub

内容的提问来源于stack exchange,提问作者A.V. Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:34:55