Excel 使用VBA修改动态名称
我有一个电子表格,可以链接到其他几个电子表格,将数据汇总到一张表格中;我的任务是修改工作表以绘制这些数据。在一个人的报告中,每个月有一行12个时段;如果某人在一个月内工作,则该月将显示在相应的位置。对于图,我已经计算出使用动态名称范围,以便图中的月数等于行中的月数;唯一的问题是,起始点根据一个人开始的月份而变化 我能够生成一个相当大的嵌套if语句,但这似乎不是解决问题的好方法。有没有办法让VBA脚本更改动态名称范围的值,或者直接修改图表的值?如果这不是一个可行的选项,除了动态命名范围之外,还有其他方法来解决这个问题吗 我无法更改此报告表的行为方式,因为这是一个与工作相关的电子表格,这是他们出于报告原因希望的方式;我只是想添加图形功能 示例: 在第一个示例中,当您从代理名称旁边的下拉框中选择“Second”时,您会看到一个问题示例。它在图表中包含了无意义的数据 在第二个示例中,我通过向图表中使用的动态命名范围添加if语句解决了这个问题;但正如你所看到的,包括2个月,它现在是巨大的,要包括所有12个月,这几乎是不可能的。如果我要添加一个三月份开始的第三个人,他们在第二个示例中也不会起作用 是否有办法使动态名称范围中的值可以通过VBA进行更改?我可以直接使用VBA修改图表的值吗?有没有一种不用VBA就可以绕过这个问题的方法 谢谢。(我不能100%肯定我理解了这个问题,但这至少有助于进一步了解……) 尝试定义三个名称,如下所示:Excel 使用VBA修改动态名称,excel,vba,Excel,Vba,我有一个电子表格,可以链接到其他几个电子表格,将数据汇总到一张表格中;我的任务是修改工作表以绘制这些数据。在一个人的报告中,每个月有一行12个时段;如果某人在一个月内工作,则该月将显示在相应的位置。对于图,我已经计算出使用动态名称范围,以便图中的月数等于行中的月数;唯一的问题是,起始点根据一个人开始的月份而变化 我能够生成一个相当大的嵌套if语句,但这似乎不是解决问题的好方法。有没有办法让VBA脚本更改动态名称范围的值,或者直接修改图表的值?如果这不是一个可行的选项,除了动态命名范围之外,还有其
start_month
data
chart_data
当start\u month
包含要绘制图表的列的编号时,data
是所有12列数据,类似于=OFFSET($C$1,0,0,COUNT($A:$A),12)
和chart\u data
从数据中选择所需的列,例如=INDEX(data,start\u month)
现在将图表的系列设置为
WorkbookName!图表数据
,使用工作簿中的任何名称。随着开始\u月
值的变化,图表中显示的值也应随之变化。您可以在VBA中添加或修改名称
,如:
Dim nm As Name
Dim rng As Range
'Here, you could use a more complicated expression'
' to derive the proper address dynamically.'
Set rng = Sheets("Sheet1").Range("A2:A25")
'Now, add a Name to the workbook:'
Set nm = ActiveWorkbook.Names.Add("My_Name", rng)
使用一些字符串函数/变量,您可以派生/计算VBA中的范围地址。对于我来说,如果您可以显示屏幕截图或电子表格的示例,这会有所帮助。最近的一个问题表明,使用以字母“c”开头的名称可能存在错误,无法将这些名称分配给VBA中的
系列。值。