vba - 在 VBA 中引用动态命名范围

标签 vba excel excel-2010

我在引用 VBA 中的动态名称范围时遇到麻烦。
我的范围定义为

    =OFFSET(Sheet!$B$2,0,0,COUNTA(Sheet!$B:$B)-1,1)

我的代码应该在一个范围中搜索另一范围中的所有条目,目的是添加任何缺失的条目。到目前为止我已经

    Sub UpdateSummary()
    Dim Cell As Range
    Dim rngF As Range
    Set rngF = Nothing

    ' Step through each cell in data range
    For Each Cell In Worksheets("Aspect").Range("A_Date")
        ' search Summary range for current cell value
        Set rngF = Worksheets("Summary").Range("Sum_Date").Find(Cell.Value) // Does not work
        If rngF Is Nothing Then
            ' Add date to Summary
        End If
        Set rngF = Nothing
    Next Cell
    End Sub 

For 循环似乎工作正常。但是,使用 .Find 方法给我一条错误消息。

    Application-defined or object-defined error

如果我用特定范围($B$2:$B$5000)替换命名范围,它确实有效,所以它似乎取决于命名范围的传递方式。
任何想法将不胜感激。

谢谢。

最佳答案

该错误几乎肯定是因为 Excel 找不到引用名为“摘要”的工作表上的范围的命名范围 Sum_Date。最常见的原因是

  1. Sum_Date 指除“摘要”之外的工作表。检查 Sum_Date 的 RefersTo 属性并确保没有拼写错误。
  2. 没有命名范围 Sum_Date,即 VBA 代码中拼写错误。在名称管理器中检查命名范围的拼写。
  3. Sum_Date 的 RefersTo 公式存在错误。听起来您已经证实情况并非如此。

关于vba - 在 VBA 中引用动态命名范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868739/

相关文章:

arrays - VBA 中的子数组 - 我想切掉一个维度

Excel VBA在没有循环的情况下交换vba范围的列

excel - UsedRange 循环比预期大

VBA 代码需要很长时间才能执行

循环内的Excel VBA复制操作非常慢

excel - 使用 Perl 生成的 csv 文件已损坏

c# - VS 2010 Excel 插件 - 入门

vba - 访问工作表上绘制的标签

sql - 查询 Excel 2010 时诊断 OLEDB 异常

excel - 计算包含空白单元格的行数(Excel/VBA)