簡體   English   中英

如何將范圍數組復制到VBA中的特定目標?

[英]How to copy Range Array to specific destination in VBA?

請幫助我到處搜索,但似乎所有方法都失敗了。 這是我的密碼

Dim MyArray(1 To 20) As Range
Dim A0 As Integer
Cells(1, 1).Select

For A0 = 1 To 20
Set MyArray(A0) = Range(ActiveCell, ActiveCell.Offset(1, 0))
ActiveCell.Offset(0, 1).Select
Next



Range("A15:T15") = Application.Transpose(MyArray)
Range("A15:T16") = Application.Transpose(MyArray)
Range("A15:T15") = WorksheetFunction.Transpose(MyArray)
Range("A15:T16") = WorksheetFunction.Transpose(MyArray)

我已經嘗試了每4個步驟一次。 但是失敗了。 這只是總結,使它易於閱讀。 謝謝

比我的評論走得更遠...以這個為例...

Sub a()

Dim x(2) As Integer
x(0) = 1
x(1) = 2

Range("A10:B10").Value = x

End Sub

這樣可以將數組正確輸出到單元格A10B10


對於2D陣列,可以使用此示例...

Sub a()

Dim x(2,2) As Integer
x(0,0) = 1
x(0,1) = 2
x(1,0) = 3
x(1,1) = 4

Range("A10:B11").Value = x

End Sub

您仍然不需要移調!

您可以將數據從“范圍到數組”和“數組到范圍”中的每個操作僅使用一行。

Sub CopyUsingArray()

    ' Create array
    Dim Marks() As Variant

    ' Read 20 values into array from sheet1
    Marks = Range("A1:T1").Value

    ' Write the 20 values to row 15
    Range("A15:T15").Value = Marks

End Sub

當然,如果您只是從范圍復制到另一個,則不需要使用數組。 您可以像這樣使用Range.Copy方法

Sub CopyRange()

    Range("A1:T1").Copy Destination:=Range("A15")

End Sub

如果您需要轉置數據,可以通過這種方式進行

Sub CopyRange_Transpose()

    Range("A1:T1").Copy
    Range("A15").PasteSpecial Transpose:=True

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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