【问题标题】:Getting the last entry in a named range in excel with VBA使用VBA在excel中获取命名范围内的最后一个条目
【发布时间】:2023-01-23 21:34:18
【问题描述】:

通过 vba 复制模板工作表后,我需要为开始日期和结束日期设置两个单元格,这些单元格使用数据验证引用其公式的工作表范围命名范围。为此,我需要命名范围的第一个和最后一个条目。

要在设置单元格数据之前测试代码,我有以下内容:

Debug.Print "Charts 1 Start " & Sh.Names("ProjectTemplateDates").RefersToRange(1, 1)

Debug.Print "Charts 1 End " & Sh.Names("ProjectTemplateDates").RefersToRange.End(xlDown).Value

第一个 Debug.Print 给了我正确的第一个条目:

图表 1 开始 01/09/2017

但是最后一个输入代码给了我:

图表 1 结束 100000

当我期待它给我图表 1 结束于 2023 年 1 月 3 日.我应该做一些不同的事情来找到命名范围中的最后一个条目吗?

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案1】:

    End(xlDown) 方法返回指定方向上的最后一个非空单元格。试试这个,看看它是否能满足您的需求。

    Debug.Print "Charts 1 End " & Sh.Names("ProjectTemplateDates").RefersToRange.End(xlUp).Value

    这将为您提供命名范围列中的最后一个单元格,它应该是命名范围的最后一个条目。

    【讨论】:

      【解决方案2】:
      With sh.Names("ProjectTemplateDates").RefersToRange
          Debug.Print "Charts 1 Start " & .Cells(1, 1)
          
          Debug.Print "Charts 1 End " & .Cells(.Rows.Count, 1).Value
      End With
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2019-12-05
        • 2017-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多