Excel 在sheet2上生成公式以显示sheet1中的非空行数据
我从SQL复制数据并将其粘贴到sheet1中。每次获取数据时,行的数量都会发生变化 我需要在sheet2上显示sheet1中特定列的信息 从第2行开始,表2应如下所示: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)
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工作簿才能发挥作用。