如何在Excel VBA中使用命名单元格的行号

我有一个工作表,我想用一个button来添加行。 我有多个行上的多个button,每个button应该在他们的位置添加一行。

问题是,无论何时添加一个新行,我想添加一行的位置都会改变。 我因此命名单元格,我想为每个button添加新的行。

我无法获取单元格的行号,所以我可以select添加新行的位置。 Atm我试过这个:

Sub Button2_Click() Dim RowNum As Variant Set RowNum = WorksheetFunction.Index(cell, 1, 0) Rows(RowNum & ":" & RowNum).Insert Shift:=xlDown Rows(RowNum - 1 & ":" & RowNum - 1).Copy Range("A" & RowNum) Range("D" & 7, "L" & 7).ClearContents End Sub 

其中单元格是我想要添加新行的单元格。

我无法使用索引函数作为一个数字返回行。 当我将鼠标hover在“cell”上时,它表示cell = empty。

希望这是明确的,因为你可能会告诉我不是很有经验的这个东西。

谢谢 :)

当您使用Set将variables分配给返回的Application.Index ,实际上是在设置一个范围。 你可以简化这个只是返回单元格的行号,但你必须引用命名的范围,就好像它是一个Range对象的单元格地址。

 Sub Button2_Click() Dim RowNum As Long With ActiveSheet RowNum = .Range("cell").Row .Rows(RowNum).Insert Shift:=xlDown .Rows(RowNum - 1).Copy .Range("A" & RowNum) .Range("D" & 7, "L" & 7).ClearContents 'not really sure where the 7 comes in here End With End Sub 

试试这个来find你命名的单元格:

 rowToInsertIn=Application.WorksheetFunction.Match("MyCellName", Range("A:A"), 0)