【问题标题】:Variable Named Ranges in ExcelExcel中的变量命名范围
【发布时间】:2016-08-03 14:37:27
【问题描述】:

我有一个 Excel 表格,格式如下:

Date      Asset Return
1/3/2005    0.003582399
1/4/2005    -0.01908258
1/5/2005    0.002080625
1/6/2005    0.005699497
1/7/2005    -0.008040505
1/10/2005   -0.00339116
1/11/2005   -0.009715187
1/12/2005   0.002371855
1/13/2005   -0.00580783
1/14/2005   0.001058481
1/18/2005   0.015483842
1/19/2005   -0.014690715
1/20/2005   -0.015714799
1/21/2005   -0.010796326

我需要一个命名范围来引用每一列。工作簿是一个模板,因此命名范围不会总是覆盖相同数量的行,具体取决于数据。我想设置它,以便命名范围“日期”和命名范围“资产返回”自动调整大小以覆盖从第一个值到最后一个值的整个列,而不会超过列中的最后一个值。

它将始终从单元格 B8 开始,但可能会在不同的行结束,具体取决于数据的大小。

如何设置动态命名范围来完成此操作?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这个命名范围公式可以做到:

    =Sheet1!$B$8:INDEX(Sheet1!$B:$B,COUNTA(Sheet1!$B:$B)+8)
    

    请记住添加工作表名称,否则命名范围将在活动工作表上运行。

    公式以 B8 为起点:Sheet1!$B$8
    然后计算 B 列中有多少个单元格不为空:COUNTA(Sheet1!$B:$B)
    它将计数增加 8(假设您的第一行是空白的)。
    然后它使用INDEXCOUNTA 来引用最后一个单元格。

    https://support.office.com/en-gb/article/INDEX-function-a5dcf0dd-996d-40a4-a822-b56b061328bd
    https://support.office.com/en-gb/article/COUNTA-function-7dc98875-d5c1-46f1-9a82-53f3219e2509

    【讨论】:

    • 我更喜欢=OFFSET(Sheet1!$B$8,0,0,COUNTA(Sheet1!$B:$B),1)
    • 哇,从来不知道可以计算冒号范围符号中的项目!太好了!
    • 您可以使用OFFSET,但这是一个volatile 函数,与INDEX 不同。这意味着每次 Excel 重新计算时都会重新计算,无论是否更改了先例数据(几乎是逐字复制,所以这里是链接:decisionmodels.com/calcsecretsi.htm)。
    • 我正在返回这个旧代码,只是有一个简单的问题要问你。我将如何调整此公式以应用于范围而不是列,例如从 A1 开始的 A:K?我尝试相应地更改公式,但没有成功。
    • 如果列中唯一的数据是您要查找的数据,您可以使用=Sheet1!$A$1:INDEX(Sheet1!$K:$K,COUNTA(Sheet1!$A:$A))INDEX 正在返回 K 列。COUNTA 仍应引用数据集中没有任何空白单元格的列 - 这将告诉它在 K 列中返回哪一行。
    【解决方案2】:

    试试这个 VBA 代码

    Sub test()
        application.DisplayAlerts = false
        Range("B8").currentregion.createnames _
            top:true, right:=false, left:=false, bottom:=false
        application.DisplayAlerts = true
    end sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 2017-10-01
      • 2023-03-02
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      相关资源
      最近更新 更多