Option Explicit
Sub TEST()
Dim Brr, i&, j&, T$, xR As Range, Sh As Worksheet
Set Sh = Sheets("mark")
Set xR = Intersect(Sh.[J:AD], Sh.[J1].CurrentRegion)
Intersect(xR.Offset(1, 0), [AD:AD]).ClearContents: Brr = xR
For i = 2 To UBound(Brr)
T = Brr(i, 21)
For j = 1 To UBound(Brr, 2) - 1
T = Replace(Replace(T & "," & Brr(i, j) & ",", ",,", ","), ",,", ",")
Next
Brr(i, 21) = Mid(Left(T, Len(T) - 1), 2)
Next
xR.NumberFormatLocal = "@": xR = Brr
Set xR = Nothing: Set Sh = Nothing: Erase Brr
End Sub作者: PJChen 時間: 2023-4-12 23:41
Option Explicit
Sub TEST()
Dim Brr, i&, j&, T$, T1$, xR As Range, Sh As Worksheet
Set Sh = Sheets("mark")
Set xR = Intersect(Sh.[J:AD], Sh.[J1].CurrentRegion.Offset(1, 0))
Intersect(xR.Offset(1, 0), [AD:AD]).ClearContents
Brr = xR
For i = 1 To UBound(Brr) - 1
For j = 1 To UBound(Brr, 2) - 1
T = Brr(i, j)
T1 = Replace(Replace(T1 & "," & T & ",", ",,", ","), ",,", ",")
Next
Brr(i, 1) = Mid(Left(T1, Len(T1) - 1), 2): T1 = ""
Next
With Intersect(Intersect(xR, [AD:AD]), Sh.[J1].CurrentRegion)
.Value = Brr: .Select
End With
Set xR = Nothing: Set Sh = Nothing: Erase Brr
End Sub作者: Andy2483 時間: 2023-4-14 08:22
Sub TEST_A1()
Dim Arr, T$, i&, j%
Arr = Range("J1:AC" & Cells(Rows.Count, 1).End(3).Row)
For i = 2 To UBound(Arr)
For j = 1 To UBound(Arr, 2)
T = Trim(T & " " & Trim(Arr(i, j)))
Next j
Arr(i - 1, 1) = Replace(T, " ", ","): T = ""
Next i
With [ad2].Resize(UBound(Arr) - 1)
.NumberFormatLocal = "@"
.Value = Arr
End With
End Sub作者: Andy2483 時間: 2023-4-24 10:48
Option Explicit
Sub TEST_A1()
Dim Arr, T$, i&, j%
'↑宣告變數:Arr是通用型變數,T是字串變數,i是長整數,j是短整數
Arr = Range("J1:AC" & Cells(Rows.Count, 1).End(3).Row)
'↑令Arr這通用型變數是 二維陣列,以[J1]到AC欄最後一個有內容儲存格值帶入
For i = 2 To UBound(Arr)
'↑設順迴圈!i從2 到Arr陣列縱向最大索引列號
For j = 1 To UBound(Arr, 2)
'↑設順迴圈!j從1 到Arr陣列橫向最大索引欄號
T = Trim(T & " " & Trim(Arr(i, j)))
'↑令T這字串變數是 T變數連接空白字元,
'再連接去頭尾空白字元的i迴圈列j迴圈欄Arr陣列值所組成的新字串
'最後再去除頭尾的空白字元
Next j
Arr(i - 1, 1) = Replace(T, " ", ","): T = ""
'↑令(i變數-1)列第1欄Arr陣列值是 T變數將空白字元置換為逗號後的字串,
'令T變數是空字元,這樣的方式可以讓字串最前方與後方不會多一個逗號
Next i
With [ad2].Resize(UBound(Arr) - 1)
'↑以下是關於[AD2]儲存格擴展向下(Arr陣列縱向索引號-1)個儲存格的程序
.NumberFormatLocal = "@"
'↑令該區域儲存格格式是文字
.Value = Arr
'↑令該區域儲存格值以Arr陣列值帶入
End With
End Sub