在 vba 中定义动态范围

Defining dynamic ranges in vba

如何在电子表格中最后一个包含数据的单元格旁边的列中指定单元格,例如如果我有数据

Range(Cells(1, 1), Cells(lastRow, lastColumn))

如何动态定义

Range(Cells(1, 2), Cells(lastRow, n_lastColumn))

n_lastColumn 引用 lastColumn 之后的下一列的函数中?

您可以使用 Worksheet 对象上可用的 UsedRange 属性。

但请注意,这会为您提供 watermark 使用范围,而不是当前使用范围;即,如果您在单元格中写入一个值然后将其删除,它仍然包含 UsedRange.

Range(Cells(1,1), Cells(lastRow, lastColumn)).offset(,1)

Range("A1").currentregion.offset(,1)

sub find_last()

    Dim LastRow As Integer
    Dim LastCol As Integer
    Dim WS as Worksheet

    Set WS = ThisWorkbook.Worksheets("MySheet")


    LastRow = WS.Cells.Find(What:="*", After:=WS.Range("A1"), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False, MatchByte:=False).row
    LastCol = WS.Cells.Find(What:="*", After:=WS.Range("A1"), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False, MatchByte:=False).Column


    WS.Cells(LastRow, LastCol + 1) = "MyData"

end sub