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

VBA报错:无法设置RowSource属性值(无效属性值)求助

解决VBA ListBox .RowSource设置时的"Invalid property value"错误

你遇到的这个错误,核心原因是你给ListBox的.RowSource设置了一个无效的单元格范围。咱们一步步拆解问题和解决方案:

问题根源分析

看你的代码,在计算数据行数lr时用了Application.WorksheetFunction.CountA(sh.Range("A:A")),然后当只有表头(lr=1)时强行把lr设为2。但如果过滤后没有匹配的数据,Sale_Purchase_Display表只有第1行的表头,第2行根本没有实际内容,这时"Sale_Purchase_Display!A2:H" & lr就变成了"Sale_Purchase_Display!A2:H2"——这个范围在Excel中会被识别为无效,自然抛出Invalid property value错误。

另外,CountA本身也有局限性:如果A列中间存在空白单元格,它会低估实际的最后一行,同样可能导致范围引用出错。

具体修复方案

修改代码中计算最后一行和设置RowSource的部分,确保只在有有效数据时才设置范围,否则清空列表框:

Sub show_salepurchasedata()
Dim dsh As Worksheet
Dim sh As Worksheet
Set dsh = ThisWorkbook.Sheets("Sale_Purchase_Worksheet")
Set sh = ThisWorkbook.Sheets("Sale_Purchase_Display")
dsh.AutoFilterMode = False
sh.UsedRange.ClearContents
dsh.Range("H:H").NumberFormat = "D-MMM-YYYY"
'put filter here
dsh.UsedRange.AutoFilter 8, ">=" & Me.txt_startdate.Value, xlAnd, "<=" & Me.txt_enddate.Value
If Me.OptionButton2.Value = True Then
dsh.UsedRange.AutoFilter 3, "Purchase"
End If
If Me.OptionButton3.Value = True Then
dsh.UsedRange.AutoFilter 3, "Sale"
End If
sh.UsedRange.Clear
dsh.UsedRange.Copy
sh.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
'disply data in list box
Dim lr As Long
' 替换CountA,用更可靠的方式获取A列最后一行
lr = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row

With Me.ListBox2
    .ColumnCount = 8
    .ColumnHeads = True
    .ColumnWidths = "0,120,70,70,70,70,70,70"
    
    ' 只有当存在数据行(最后一行大于表头行1)时,才设置RowSource
    If lr > 1 Then
        .RowSource = "Sale_Purchase_Display!A2:H" & lr
    Else
        .RowSource = "" ' 清空列表框
        MsgBox "没有找到符合筛选条件的数据", vbInformation ' 可选:提示用户无数据
    End If
End With
End Sub

额外排查建议

  • 确认工作表名称拼写:确保Sale_Purchase_Display表的名称和代码中完全一致(大小写、空格都不能错),表名有误也会导致范围引用失败。
  • 检查列数匹配:ListBox的.ColumnCount设为8,对应的范围是A2:H(8列),这个是匹配的,但如果后续调整了列数,要同步修改这两个值。
  • 调试查看变量值:如果还是报错,可以在设置RowSource前加一行Debug.Print "目标范围:Sale_Purchase_Display!A2:H" & lr,然后打开VBA编辑器的「立即窗口」(Ctrl+G),查看输出的范围是否在工作表中真实存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 18:47:52