我已经记录了一个带有相对引用的宏,其中第一个单元格是我想要给出范围的名称,所以我选择了我想要命名的范围 - >右键单击 - >定义名称 - >由于该名称已包含在第一个单元格中,因此我无需更改任何内容 - >我点击OK。
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
1:
答案 0 :(得分:1)
虽然您的行为被记录为 relative ,但在定义名称时,Name:=
和.RefersTo:=
之类的内容并不是相对的。您可以通过编辑并将选择地址传递到宏代码行来进行调整。
ActiveWorkbook.Names.Add Name:=selection.cells(1,1).value, refersTo:="=" & selection.address
selection.cells(1,1).value
是指任何单个或多个单元格选择的左上角单元格中的值。