簡體   English   中英

顯示數組而不在Excel VBA中使用循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM