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

运行时错误380:无法设置RowSource属性,无效属性值求助

解决Run-time Error 380(RowSource属性无效)的方法

核心修复:修正工作表名称的引用格式

如果你的工作表名称包含空格、中文或特殊字符,直接拼接的RowSource字符串会因格式错误触发报错。必须用单引号包裹工作表名称,修改代码如下:

.RowSource = "'" & sh.Name & "'!A2:H" & lr

优化数据范围的定位逻辑

原代码用CountA(A:A)计算最后一行,容易因A列中间有空行导致范围错误。换成更可靠的行定位方式:

' 替换原lr计算代码
Dim lr As Long
lr = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
' 若只有表头(A1有内容,A2及以下为空),设置lr=2避免无效范围
If lr < 2 Then lr = 2

排查其他潜在问题

  • 确认sh对象已正确赋值:需提前通过Set sh = ThisWorkbook.Worksheets("你的工作表名称")指定目标工作表,避免sh为空引用。
  • 检查列数匹配:确保代码中ColumnCount = 8与工作表A:H列的实际列数一致(你的截图显示表头为8列,此点大概率没问题)。
  • 验证生成的范围:添加Debug.Print "'" & sh.Name & "'!A2:H" & lr,运行后打开立即窗口(Ctrl+G),复制字符串到Excel地址栏,确认能选中有效区域。

替代方案:改用List属性加载数据

若RowSource仍有问题,可直接将单元格数据赋值给ListBox的List属性,规避格式限制:

With Me.ListBox2
    .ColumnCount = 8
    .ColumnWidths = "0,120,70,70,70,70,70,70"
    ' 加载A2到最后一行的数据
    .List = sh.Range("A2:H" & lr).Value
    ' 手动设置表头(需关闭自动表头)
    .ColumnHeads = False
    .AddItem
    For i = 0 To 7
        .List(0, i) = sh.Cells(1, i + 1).Value
    Next i
End With

内容的提问来源于stack exchange,提问作者Simiyu S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:42:32