macros录制定义单元名称

我已经logging了一个相对的参考macros,其中第一个单元格是我想给范围的名称,所以我select我想命名的范围 – >右键单击 – >定义名称 – >因为名称已经包含在第一个单元格我不需要改变任何东西 – >我点击确定。

Example A1:B5 - I want to name it TSLA56 then I go to D1 to run the recorded macro to name D1:E5 to TSLA23 

macros完成运行后,仍称为D1

我究竟做错了什么? 这甚至有可能吗?

loggingmacros:

 Sub DefineName() ' ' DefineName Macro ' ' ActiveCell.Range("A1:B5").Select ActiveWorkbook.Names.Add Name:="TSLA56", RefersToR1C1:="=Sheet1!R1C1:R5C2" ActiveWorkbook.Names("TSLA56").Comment = "" End Sub 

1 : 在这里输入图像说明

虽然你的行为被logging为相对的.RefersTo:=在定义一个名字的时候, Name:=.RefersTo:=并不是相对的。 您可以通过编辑并将select地址传递到macros代码行来调整。

 ActiveWorkbook.Names.Add Name:=selection.cells(1,1).value, refersTo:="=" & selection.address 

selection.cells(1,1).value是指任何单个或多个单元格select的左上angular单元格中的值。