使用VBA提取行地址的第一行号



我有一个空的Excel电子表格,其中我在name manager中定义了一个变量Row
此变量当前引用3:3但可以随时切换。
因此,它也可以是105:1055000:5000或任何其他可能的数字。

现在,我使用以下VBA来提取行地址的第一个数字

Sub Extract_Row_Adress()
    If Len(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)) <= 3 Then
        RowNumber = Mid(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False), 1, 1)
    Else
        If Len(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)) <= 5 Then
            RowNumber = Mid(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False), 1, 2)
        Else
            If Len(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)) <= 7 Then
                RowNumber = Mid(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False), 1, 3)
            Else
                If Len(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)) <= 9 Then
                    RowNumber = Mid(Sheet1.Range("Row").Address(RowAbsolute:=False, ColumnAbsolute:=False), 1, 4)
                Else
                End If
            End If
        End If
    End If
    Sheet1.Range("A5").Value = RowNumber
End Sub

到目前为止,所有这些都运行良好。


正如您在 VBA 中看到的,我需要使用几个IF statements因为行地址的第一个数字的位数可能会有所不同。据此,我必须用( 1, 1) ( 1, 2) ( 1, 3) ( 1, 4)等调整Mid函数的长度。

我想知道是否有更好的方法可以在不运行所有这些If statements的情况下做到这一点?

这将返回行号

Sheet1.Range("Row").Row

如果Range("Row")例如"4:6"

Sheet1.Range("Row").Row 'returns 4
Sheet1.Range("Row").Row + Sheet1.Range("Row").Rows.Count - 1 'returns 6

最新更新