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

Excel 在sheet2上生成公式以显示sheet1中的非空行数据,excel,vba,Excel,Vba,我从SQL复制数据并将其粘贴到sheet1中。每次获取数据时,行的数量都会发生变化 我需要在sheet2上显示sheet1中特定列的信息 从第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)

我从SQL复制数据并将其粘贴到sheet1中。每次获取数据时,行的数量都会发生变化

我需要在sheet2上显示sheet1中特定列的信息

从第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为我输入公式。

试试

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

我得到:运行时错误“9”-下标超出范围-.range(.Cells(2,I),.Cells(.Rows.Count,I).End(xlUp)).Formula=“=value(“&Worksheets(“sheet2”)。Cells(2,arr(I+1))。Address(0,0,external:=True)&”)“它也开始填充第1行而不是第2行。我非常感谢您的帮助,我现在在这行有另一个错误:lr=工作表(“sheet1”)。单元格(.Rows.Count,I)。End(xlUp)。Rowis
lr=工作表(“sheet1”)。单元格(.Rows.Count,arr(I-1))。End(xlUp)。Row
不应该是
lr=工作表(“sheet1”)。单元格(工作表(“sheet1”)。Rows.Count,arr(I-1))。End(xlUp)。Row
不应该是
.Cells
具有
Sheet1
ref,但
行数
将使用
@jamheadart将
Sheet2
cos-如果Sheet1和Sheet2位于同一工作簿中,它们将具有相同的.Rows.Count。是的,它是从第二张纸上读出来的,不是第一张纸,但这并不重要。Sheet1必须位于外部XLS工作簿中,而Sheet2是XLSX工作簿才能发挥作用。