如何在Excel VBA中使用指定单元格的行号

时间:2015-10-26 09:01:43

标签: excel vba excel-vba worksheet-function

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

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

我无法获取单元格的行号,因此我可以选择添加新行的位置。 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

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

我无法使用索引函数将行作为数字返回。当我将鼠标悬停在" cell"在调试中它说cell = empty。

希望这很清楚,因为你可以告诉我对这些东西不太熟悉。

谢谢:)

2 个答案:

答案 0 :(得分:1)

当您使用Set将变体分配给返回的Application.Index时,实际上是在设置范围。您可以简化此操作以简单地返回单元格的行号,但您必须引用命名范围,就好像它是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

答案 1 :(得分:0)

尝试此操作以查找您命名的单元格:

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