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

How to use the row number of a named cell in Excel VBA

我有一个工作表,我想在其中使用按钮添加行。我在多行上有多个按钮,每个按钮都应该在它们的位置添加一行。

问题是,每当添加新行时,我要添加行的位置都会发生变化。因此,我命名了要为每个按钮添加新行的单元格。

我无法获取单元格的行号,因此我可以选择添加新行的位置。自动柜员机我试过这个:

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

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

我在使用索引函数 return 将行作为数字时遇到问题。当我在调试中将鼠标悬停在 "cell" 上时,它显示 cell=empty.

希望这是清楚的,因为你可能会说我对这些东西不是很有经验。

谢谢:)

试试这个找到你命名的单元格:

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

当您使用 Set 将变体分配给 returned Application.Index 时,您实际上是在设置一个范围。您可以将其简化为简单地 return 单元格的行号,但您必须引用命名范围,就好像它是 Range object.

中的单元格地址一样
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