我有一个表,我想在 VBA 中动态调整大小。
我目前的代码是这样的:

Sub resizedata()
Dim ws As Worksheet
Dim ob As ListObject
Dim Lrow1 As Long

Lrow1 = Sheets("Sheet4").Cells(Rows.Count, "J").End(xlUp).Row
Set ws = ActiveWorkbook.Worksheets("Sheet4")
Set ob = ws.ListObjects("Table28")

ob.Resize ob.Range.Resize(Lrow1)

End Sub

不过,我想在此基础上添加一个条件...
  • 表的大小应调整到列 J 中的第一个 0 之前。

  • 例如:
    +-------+--------+-------+
    |Date(I)|Hours(J)| Sal(K)|
    +-------+--------+-------+
    | Aug   | 150000 | 12356 |
    | Sep   |  82547 |  8755 |
    | Oct   |  92857 | 98765 |
    | Nov   |  10057 | 45321 |
    | Dec   |      0 |     0 |
    | Jan   |      0 |     0 |
    +-------+--------+-------+
    

    上表的最后一行应该是 11 月的行,因为 12 月是列 J 中的第一个 0 值。

    任何人都可以协助修改我现有的代码吗?

    最佳答案

    就像是:

    With Sheets("Sheet4")
    
        Lrow1 = .Cells(.Rows.Count, "J").End(xlUp).Row
        Do While .Cells(Lrow1, "J").Value=0
            Lrow1 = Lrow1 - 1
        Loop
    
    End With
    

    关于vba - 动态调整表格到最后一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44011763/

    10-13 01:33