- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-3-24
|
6#
發表於 2023-2-15 08:08
| 只看該作者
本帖最後由 Andy2483 於 2023-2-15 08:11 編輯
回復 3# av8d
謝謝前輩回復
後學今天複習了一下並作心得註解,請前輩參考
Option Explicit
Sub TEST()
Dim Arr, N&, i&, j&
'↑宣告變數:Arr是通用型變數,(N,i,j)是長整數變數
Arr = Range([D1], Cells(ActiveSheet.UsedRange.Rows.Count, "A"))
'↑令Arr這通用型變數是二維陣列,以現表[D1]到A欄/使用列儲存格,這方正範圍儲存格值倒入
'PS:使用列:已使用儲存格擴展為最小方正範圍儲存格的列數
For i = 2 To UBound(Arr)
'↑設順迴圈!i從2到 Arr陣列縱向最大索引列號數
N = N + 1: Arr(N, 1) = ""
'↑令N這長整數變數累加 1 :令N變數列第1欄Arr陣列值是空字元
For j = 1 To UBound(Arr, 2)
'↑設順迴圈!j從2到 Arr陣列橫向最大索引欄號數
If Trim(Arr(i, j)) <> "" Then
'↑如果i迴圈列第j迴圈欄Arr陣列值去頭尾空白字元後不是空字元 ??
If Arr(N, 1) = "" Then
'↑如果N變數列第1迴圈欄Arr陣列值是空字元??
Arr(N, 1) = "'" & Trim(Arr(i, j))
'↑令N變數列第1迴圈欄Arr陣列值是 單引號,
'連接i迴圈列第j迴圈欄Arr陣列值去頭尾空白字元的新字串
Else
Arr(N, 1) = Arr(N, 1) & "," & Trim(Arr(i, j))
'↑否則令N變數列第1迴圈欄Arr陣列值是 自身,
'連接","符號,再連接i迴圈列第j迴圈欄Arr陣列值去頭尾空白字元的新字串
End If
End If
Next
Next
[E2].Resize(N, 1) = Arr
'↑令[E2]擴展向下N變數列,向右不擴展的範圍儲存格值,以Arr陣列值帶入
Set Arr = Nothing
'↑令釋放變數
End Sub |
|