我创建了一个代码,该代码获取用户输入并从单元格X33输出“ 2 x n”数组。 n有所不同。因此,我设置了VBA代码以选择它:
lastCol = Cells(34, Columns.Count).End(xlToLeft).Column
Range(Range("X33"), Cells(34, lastCol)).Select
我正在尝试通过名称管理器将上述选定范围分配到现有Array2中。当我尝试通过名称管理器记录宏时,我被迫使用
With ActiveWorkbook.Names("Array2")
.Name = "Array2"
.RefersToR1C1 = "=Sheet1!R33C24:R34C100"
.Comment = ""
End With
我试图通过将上面的C100更改为&lastCol,因为输出中的最后一列可以是任何数字,但是记录的代码是固定的,不会将数组分配给我想要的选定范围。有什么办法可以更改此代码,以便它直接采用在顶部代码中选择的范围,而不是固定值。
我仍在学习VBA基础知识,因为我主要尝试通过录制进行手动编辑。谢谢,非常感谢。
答案 0 :(得分:0)
dim lastCol as long
lastCol = Cells(34, Columns.Count).End(xlToLeft).Column
With ActiveWorkbook.Names("Array2")
.Name = "Array2"
'written directly
.RefersToR1C1 = "=Sheet1!R33C24:R34C" & lastCol
'or from the selected cells
.RefersToR1C1 = selection.address(1, 1, ReferenceStyle:=xlr1c1, external:=true)
.Comment = ""
End With
答案 1 :(得分:0)
setState