【问题标题】:Excel VBA setting range from string variableExcel VBA设置范围来自字符串变量
【发布时间】:2017-03-27 21:20:25
【问题描述】:

我正在尝试根据公共变量在图表系列集合中设置一个范围。数据范围以下列格式存储在另一个工作表中。这是我在 VBA 子程序中硬编码的代码,以验证范围是否正确填充到变量中,然后转换为范围。无论哪种方式,我都会遇到相同的错误。

    Public dataRange As String
    dataRange = "MyData!$F$2:$F$118,$H$2:$H$118"

    Dim rgnY As Range

    Set rngY = Range(dataRange)

但我收到此错误:

    Run-time error '1004' : Method 'Range' of object'_Global' failed

我不确定为什么会这样。我已经用谷歌搜索了这个错误,虽然我看到了很多建议,但我不确定如何解决我的问题。我需要使用以这种格式存储的数据填充图表系列值和 XValue。

关于我做错了什么以及如何解决它的任何想法?

【问题讨论】:

  • 您可以尝试在两个范围前添加工作表名称吗?

标签: vba excel


【解决方案1】:

Range 对象可以引用非连续区域,但仅限于所有区域都在同一张表上的情况。在这里,您指的是工作表MyData 上的$F$2:$F$118 和活动工作表上的$H$2:$H$118,可能是也可能不是MyData。我猜不是,因为你得到一个错误。

假设您打算将两个子范围都放在 MyData 上使用

dataRange = "MyData!$F$2:$F$118,MyData!$H$2:$H$118"

【讨论】:

  • 这确实消除了错误,但有趣的是,如果您打印地址,Debug.Print rgnY.Address(0, 0, 1, 1),即使前面有MyData!,它也会返回[Book1]MyData!F2:F118,H2:H118,这反过来会如果您尝试使用它,则返回相同的错误。如果需要,为什么不以这种方式返回?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多