- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-5-5
|
3#
發表於 2022-10-25 08:08
| 只看該作者
本帖最後由 Andy2483 於 2022-10-25 08:09 編輯
前輩早安!
今天早上將昨天猜測情境練習陣列的程式碼心得註解一下!
請各位前輩指正並指導! 謝謝!
Option Explicit
Sub TEST()
Dim Brr, Arr, Crr, c&, i&, x&, xR, R&, T, V, Y, Z
Dim B#, j, K%, P$, Q, Ra
'↑宣告變數
Y = Array("季累計損益表", "資產負債簡表", "累計現金流量季表", "現金流量年表", "損益年表")
'↑令Y 是一維陣列 倒入 5個表的名稱字串
For j = 0 To UBound(Y)
'↑設順外迴圈
Brr = Sheets(Y(j)).Range(Sheets(Y(j)).[B3], Sheets(Y(j)).Cells(Rows.Count, 2).End(3))
'↑令Brr陣列裝入Y 各個表的關鍵字串!
ReDim Arr(1 To UBound(Brr), 1 To 99)
'↑宣告Arr空陣列的列數同Brr!欄數99欄
For i = 1 To UBound(Brr)
'↑設順中迴圈
If Trim(Brr(i, 1)) = "" Then
'↑如果關鍵字串去頭尾的空白字元後是空字元?
GoTo 111
'↑條件成立!就跳到 111 的位置繼續執行
End If
Crr = Split(Trim(Brr(i, 1)), " ")
'↑將關鍵字串去頭尾的空白字元後,以空白字元分割字串成為Crr一維陣列
For x = 0 To UBound(Crr)
'↑設順內迴圈!從0到Crr陣列的後一個
Arr(i, x + 1) = Crr(x)
'↑將Crr一維陣列帶入Arr的二維陣列!
Next
111
Next
Sheets(Y(j)).[C3].Resize(UBound(Arr), 99) = Arr
'↑將各個表從[C3]開始貼入結果資料
Next
Set Arr = Nothing
Set Brr = Nothing
Set Crr = Nothing
End Sub |
|