Board logo

標題: [發問] 每100個分行 [打印本頁]

作者: dou10801    時間: 2023-2-1 13:59     標題: 每100個分行

每100個分行,為何第五行會消失,請前輩指點,謝謝.
作者: dou10801    時間: 2023-2-1 16:51

回復 1# dou10801 抱歉,更正檔案.[每100個分行,為何第五行會消失,請前輩指點,謝謝.]
作者: Andy2483    時間: 2023-2-2 09:03

本帖最後由 Andy2483 於 2023-2-2 09:12 編輯

回復 2# dou10801


    謝謝前輩發表此主題與範例
後學建議方案如下:

Option Explicit
Sub 設陣列收集資料後再寫入儲存格()
Dim i&, K&, MS1$, R&
[F:F].ClearContents
R = Cells(Rows.Count, 1).End(3).Row
ReDim Arr(1 To (R - 1) \ 100 + 1, 1 To 1)
For i = 2 To R
   MS1 = IIf((i - 1) Mod 100 = 0, "", MS1)
   K = (i - 1) \ 100 + 1
   MS1 = MS1 & """" & Cells(i, 1) & """" & ","
   Arr(K, 1) = MS1 & "  -"
Next
[F1].Resize(UBound(Arr), 1) = Arr
End Sub
作者: hcm19522    時間: 2023-2-2 14:02

https://blog.xuite.net/hcm19522/twblog/590708468
作者: Andy2483    時間: 2023-2-17 07:35

本帖最後由 Andy2483 於 2023-2-17 07:37 編輯

回復 2# dou10801


    再次謝謝前輩發表此主題
希望後學的學習心得能對前輩有所幫助
後學今天複習註解了一下,方便日後再複習,也請前輩參考

Option Explicit
Sub 設陣列收集資料後再寫入儲存格()
Dim i&, K&, R&, MS1$
'↑宣告變數:(i,K,R)是長整數變數,MS1是字串變數
[F:F].ClearContents
'↑令F欄清除儲存格裡的內容
R = Cells(Rows.Count, 1).End(3).Row
'↑令這長整數變數是 A欄最後一個有內容儲存格的列號
ReDim Arr(1 To (R - 1) \ 100 + 1, 1 To 1)
'↑宣告Arr是二維陣列,陣列大小:縱向從1到((R變數-1)除100後取整數再+1)列
'橫向從1到1欄

For i = 2 To R
'↑設順迴圈!i從2到R變數
   MS1 = IIf((i - 1) Mod 100 = 0, "", MS1)
   '↑令MS1這字串變數是 IIF()回傳值
   '如果(i迴圈數-1)除100的餘數是 0,就回傳 空字元
   '否則回傳 MS1變數自身值

   K = (i - 1) \ 100 + 1
   '↑令K這長整數變數是 (i迴圈數-1)除100後取整數再+1
   MS1 = MS1 & """" & Cells(i, 1) & """" & ","
   '↑令MS1變數是 自身值連接 兩個雙引號字元,接著連接i迴圈列A欄儲存格值,
   '再連接 兩個雙引號字元,最後連接 逗號所組成的新字串

   Arr(K, 1) = MS1 & "  -"
   '↑令K變數列第1欄Arr陣列值是 MS1變數連接 "  -" 字串組成的新字串
Next
[F1].Resize(UBound(Arr), 1) = Arr
'↑令[F1]擴展向下Arr縱向最大索引列號列數,向右不擴展的範圍值以Arr陣列值帶入
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)