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

使用长字符串变量指定Range时触发VBA运行时错误1004

解决VBA创建图表时的运行时错误'1004'

错误原因

出现运行时错误'1004',是因为Range()方法接受的地址字符串存在长度限制。新增两个单元格后,你的myRange字符串长度超过了Excel允许的阈值,导致方法调用失败。

解决方法

方法1:直接用Union合并Range对象

放弃长字符串地址的方式,通过Union()方法逐个合并目标单元格对应的Range对象,代码示例:

Dim targetRange As Range
Set targetRange = Union(Sheet1.Range("$A$1"), _
                        Sheet1.Range("$A$3"), _
                        Sheet1.Range("$A$8"), _
                        Sheet1.Range("$A$13"), _
                        Sheet1.Range("$A$18"), _
                        Sheet1.Range("$A$23"), _
                        Sheet1.Range("$A$28"), _
                        Sheet1.Range("$A$34"), _
                        Sheet1.Range("$A$41"), _
                        Sheet1.Range("$A$48"), _
                        Sheet1.Range("$A$55"), _
                        Sheet1.Range("$D$1"), _
                        Sheet1.Range("$D$3"), _
                        Sheet1.Range("$D$8"), _
                        Sheet1.Range("$D$13"), _
                        Sheet1.Range("$D$18"), _
                        Sheet1.Range("$D$23"), _
                        Sheet1.Range("$D$28"), _
                        Sheet1.Range("$D$34"), _
                        Sheet1.Range("$D$41"), _
                        Sheet1.Range("$D$48"), _
                        Sheet1.Range("$D$55"))

ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=targetRange

方法2:通过循环优化代码(适合有规律的单元格)

观察目标单元格,A列和D列对应的行号一致,可将行号存入数组,通过循环自动合并区域,减少重复代码:

Dim rowNums As Variant
Dim i As Integer
Dim targetRange As Range

rowNums = Array(1, 3, 8, 13, 18, 23, 28, 34, 41, 48, 55)
' 初始化第一个区域
Set targetRange = Sheet1.Range("A" & rowNums(0) & ",D" & rowNums(0))

' 循环合并剩余区域
For i = 1 To UBound(rowNums)
    Set targetRange = Union(targetRange, Sheet1.Range("A" & rowNums(i)), Sheet1.Range("D" & rowNums(i)))
Next i

ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData Source:=targetRange

补充说明

Union()方法直接操作Range对象,不受地址字符串长度限制,能更稳定地处理大量非连续单元格的引用需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:42:35