代码之家  ›  专栏  ›  技术社区  ›  Albert Mulder

在sheet2上生成公式以显示sheet1中的非空行数据

  •  2
  • Albert Mulder  · 技术社区  · 6 年前

    我从sql复制数据并粘贴到sheet1中。每次我们得到数据时,行的数量都会改变。

    我需要在第2页的第1页的特定列中显示信息。

    从第2行开始,第2张应如下所示:

        Column A =VALUE('Sheet1'!AK2)
        Column B =VALUE('Sheet1'!G2)
        Column C =VALUE('Sheet1'!F2)
        Column D =VALUE('Sheet1'!Q2)
        Column E =VALUE('Sheet1'!R2)
        Column F =VALUE('Sheet1'!S2)
        Column G =VALUE('Sheet1'!T2)
        Column H =VALUE('Sheet1'!U2)
    

    每行增加(ak3、ak4等),直到显示第1张中的所有行。我不能让它在最后显示空行。这就是为什么我需要vba为我输入公式。

    1 回复  |  直到 6 年前
        1
  •  1
  •   user4039065user4039065    6 年前

    尝试,

    Option Explicit
    
    Sub Macro10()
        Dim arr As Variant, i As Long, lr As Long
    
        arr = Array(37, 7, 6, 17, 18, 19, 20, 21)
    
        With Worksheets("sheet2")
            For i = 1 To 8
                lr = Worksheets("sheet1").Cells(.Rows.Count, arr(i - 1)).End(xlUp).Row
                lr = application.max(lr, 2)
                .Range(.Cells(2, i), .Cells(lr, i)).Formula = _
                    "=value(" & Worksheets("sheet1").Cells(2, arr(i - 1)).Address(0, 0, external:=True) & ")"
            Next i
        End With
    
    End Sub