VBA Range assign 入array 快速方法

請問有冇快速既方法將range 入邊既CELL Assign 入array 內?
(我目前用for loop  個一個CELL assign 入array, 試過用array=range(下面 1), 好似唔得, 但反過黎range=array(下面 2) 又得, 唔明點解?)

1.  array=range 呢個方法唔得==>  Cells() = Sheets("sheet1").Range("A1:B60")

2. range=array呢個方法又得==> Sheets("sheet1").Range("C1:D60") = cell()

=======================================================
Sub test()
Dim cell(1 To 60, 1 To 2) As String

For i = 1 To 60
cell(i, 1) = Sheets("sheet1").Cells(i, 1)
Next

Sheets("sheet1").Range("C1:D60") = cell()
End Sub

回覆 1# bongbong3481

Dim cell() As Variant

TOP

本帖最後由 A字膊 於 2017-4-30 06:15 編輯

Sub test()
    Dim cell() As Variant
    ReDim cell(1 To 60, 1 To 2)
    For j = 1 To 2
        For i = 1 To 60
            cell(i, j) = Sheets("sheet1").Cells(i, j)
        Next i
    Next j
    Sheets("sheet1").Range("C1:D60") = cell()
End Sub

TOP

回覆 2# 狂蜂一號


改成下面咁,    呢句cell() = Sheets("sheet1").Range("A1:B60")都有問題

Sub test()
    Dim cell() As Variant
    ReDim cell(1 To 60, 1 To 2)
     
    cell() = Sheets("sheet1").Range("A1:B60")
    Sheets("sheet1").Range("C1:D60") = cell()
   
End Sub

TOP

回覆 3# A字膊

改成下面咁,    呢句cell() = Sheets("sheet1").Range("A1:B60")都有問題

Sub test()
    Dim cell() As Variant
    ReDim cell(1 To 60, 1 To 2)
     
    cell() = Sheets("sheet1").Range("A1:B60")
    Sheets("sheet1").Range("C1:D60") = cell()
   
End Sub

TOP

cell = ActiveSheet.Range([A1], Cells(Rows.Count, 1).End(xlUp).Offset(, 1)).Value

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

回覆 6# A字膊

你個方法OK , 原來要加個.value

cell() = Sheets("sheet1").Range("A1:B60").value

TOP

本帖最後由 bongbong3481 於 2017-4-30 16:03 編輯

回覆 7# myricky

THANK YOU!  你個方法OK 啊

Worksheets("sheet1").Activate真系好重要

TOP

回覆 4# bongbong3481

Sub test()
   Dim cell() As Variant
   cell = Range("A1:B60")
   Range("C1:D60") = cell
End Sub

TOP