Vba 宏录制以定义单元格名称

Vba 宏录制以定义单元格名称,vba,excel,Vba,Excel,我已经录制了一个相对引用为on的宏,其中第一个单元格是我要指定范围的名称,因此我选择要命名的范围->右键单击->定义名称->因为名称已包含在第一个单元格中,所以我不需要更改任何内容->单击确定 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 宏运行完毕后,仍称为D1 我做错了什么?这可能吗 记录宏: Sub DefineName(

我已经录制了一个相对引用为on的宏,其中第一个单元格是我要指定范围的名称,因此我选择要命名的范围->右键单击->定义名称->因为名称已包含在第一个单元格中,所以我不需要更改任何内容->单击确定

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
宏运行完毕后,仍称为D1

我做错了什么?这可能吗

记录宏:

Sub DefineName()
'
' DefineName Macro
'

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

当您的操作尽可能被记录为相对时,
名称:=
之类的内容。定义名称时,请参考:=
。您可以通过编辑并将选择地址传递到宏代码行来调整此设置

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

selection.cells(1,1).value
指任何单个或多个单元格选择的左上角单元格中的值。

您正在命名D1:E5,因此在选择整个范围之前,名称不会显示在单元格引用中。您还可以检查名称管理器以查看已创建的定义