後來我看到一些大大以前寫的方式,幫忙看一下有沒有需要改進的 (若是陣列中的資料有幾十筆時,有否更好的方式呢?????)
N = 0
I = 0
Do Until Sheet1.Cells(3 + I, 4) = ""
For Each R In Array("F", "O", "P")
Sheet1.Cells(3 + N, 1) = R
Sheet1.Cells(3 + N, 2) = Sheet1.Cells(3 + I, 4)
N = N + 1
Next
I = I + 1
Loop作者: oobird 時間: 2010-12-8 20:05
真的很感謝大大~ 真的是厲害~
最後再請教大大語法的意思
1. Dim a, b, arr(), i%, j%, m% i%的意思是什麼呢? (我沒用過這樣的寫法,請大大教導一下)
a = [e3:e5]
b = [d3:d4]
For i = 1 To UBound(b)
For j = 1 To UBound(a)
m = m + 1
2. ReDim Preserve arr(1 To 2, 1 To m) ReDim 與 Preserve 的意思與用法??
arr(1, m) = a(j, 1)
arr(2, m) = b(i, 1)
Next j, i
[a3].Resize(m, 2) = Application.Transpose(arr)作者: GBKEE 時間: 2010-12-9 12:01
回復 10#hugh0620
Dim i As Integer
Integer 的型態宣告字元是百分比符號(%)。
Preserve 選擇性引數。當改變原有陣列最後一維的大小時,仍然保有原來的資料的關鍵字。作者: oobird 時間: 2010-12-9 13:30
dim i% = dim i as integer
把游標定在redim上按f1,看說明。
要學vba首先學如何看說明。作者: hugh0620 時間: 2010-12-9 18:40
ReDim Preserve arr(1 To 2, 1 To m)
在迴圈內重新宣告陣列的大小。
假設不能預知程式運行的結果須要的陣列大小(雖然可以先算出來,但用動態陣列就不用)
每一次的迴圈m=m+1,所以這個陣列是不斷的長大的,必須要注意陣列只能改變最後一維的大小,這裡就是指第二維。所以最後要把這個陣列轉置寫入工作表中。作者: hugh0620 時間: 2010-12-10 12:31