在vba中定义动态范围

时间:2016-06-08 13:26:01

标签: excel vba excel-vba dynamic-values

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

TransientObjectException

如何动态定义

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

在一个函数中,Range(Cells(1, 2), Cells(lastRow, n_lastColumn)) 引用n_lastColumn之后的下一列?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

但请注意,这会为您提供水印使用的范围,而不是当前使用的范围;即,如果您在单元格中写入值,则将其删除,但仍包含UsedRange

答案 2 :(得分:0)

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