[英]Display arrays without using a loop in Excel VBA
我在顯示以下代碼的結果時遇到問題:
For i = 1 To UBound(files) Step 1
Workbooks.Open files(i)
With ActiveWorkbook
Module2.testfunction
thisWb.Sheets(1).Range("A1:C" & Ubound(testfunction)) = testfunction
.Close False
End With
Next i
在for循環的每次迭代中,都有一個新的工作簿,我將其應用“ testfunction”。 此函數返回一個數組,我需要將此數組寫入運行宏的工作簿(“ thisWb”)。 每次迭代都有一個新數組,該新數組必須在下一列列中顯示,以免與之前顯示的列重疊(以一列的間距)。
就像現在的代碼一樣,存在重疊。 我想找到一種方法來迭代范圍(在列部分中)而不必求助於Cells()的循環。
可能嗎?
試試這個(未經測試)
Dim wb As Workbook, v As Variant, lCol As Long
For i = 1 To UBound(Files)
Set wb = Workbooks.Open(Files(i))
With thisWb.Sheets(1)
lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column + 2
v = testfunction
.Range(.Cells(1, lCol), .Cells(UBound(v, 1), UBound(v, 2) + lCol)) = v
wb.Close False
End With
Next
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.