在 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
如何在电子表格中最后一个包含数据的单元格旁边的列中指定单元格,例如如果我有数据
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