Board logo

標題: 請問自動換行格式要如何拆分兩行 公式及VBA做法? [打印本頁]

作者: aassddff736    時間: 2024-2-24 21:09     標題: 請問自動換行格式要如何拆分兩行 公式及VBA做法?

請問自動換行格式要如何拆分兩行 公式及VBA做法?

[attach]37484[/attach]

如何把A1欄第一排放B1欄其資料放C1
作者: Andy2483    時間: 2024-2-26 09:05

回復 1# aassddff736

"整理"表 執行前:
[attach]37487[/attach]

"整理"表 執行結果:
[attach]37488[/attach]

Option Explicit
Sub 排成表彙整為整理表()
Dim Brr, Crr, i&, R&, xU As Range, xS As Worksheet
Set xS = Sheets("排成")
[整理!A1].CurrentRegion.Offset(1).EntireRow.Delete
Brr = Range(xS.[D2], xS.[A65536])
ReDim Crr(1 To UBound(Brr), 1 To 6)
For i = 1 To UBound(Brr)
   If Trim(Brr(i, 2)) = "" Then GoTo i01 Else R = R + 1
   If InStr(Brr(i, 3), vbLf) Then
      If xU Is Nothing Then
         Set xU = Sheets("整理").Cells(R + 1, 6)
         Else
         Set xU = Union(xU, Sheets("整理").Cells(R + 1, 6))
      End If
   End If
   Crr(R, 1) = R
   Crr(R, 2) = Trim(Brr(i, 1))
   Crr(R, 3) = Trim(Brr(i, 2))
   Crr(R, 4) = Trim(Split(Brr(i, 3) & vbLf, vbLf)(0))
   Crr(R, 5) = Val(Brr(i, 4))
   Crr(R, 6) = Mid(Trim(Brr(i, 3)), InStr(Trim(Brr(i, 3)), vbLf) + 1)
i01: Next
If R = 0 Then MsgBox "沒有資料": Exit Sub
With [整理!A2].Resize(R, 6)
   .Value = Crr
   .Borders.LineStyle = xlContinuous
End With
If Not xU Is Nothing Then xU.Font.ColorIndex = 3
End Sub
作者: aassddff736    時間: 2024-2-26 11:35

回復 2# Andy2483

真的很感謝您
作者: aassddff736    時間: 2024-2-26 12:51

回復 2# Andy2483
請教一下~
[attach]37497[/attach]
1.F欄黑色字體想變成空白如何做?


[attach]37498[/attach]
2.我想增加資料項目如更改?
3.我想一次性列印 怎麼把資料帶進SHEET("記錄表")內
作者: Andy2483    時間: 2024-2-26 13:49

回復  Andy2483

真的很感謝您
aassddff736 發表於 2024-2-26 11:35

Option Explicit
Sub 排成表彙整為整理表()
Dim Brr, Crr, i&, R&, xU As Range, xS As Worksheet
Set xS = Sheets("排程")
'↑令xS變數是 "排程"工作表
[整理!A1].CurrentRegion.Offset(1).EntireRow.Delete
'↑令"整理"表留下標題列,其它列刪除
Brr = Range(xS.[D2], xS.[A65536])
'↑令Brr變數是二維陣列,以儲存格值帶入陣列中
ReDim Crr(1 To UBound(Brr), 1 To 6)
'↑宣告Crr變數是二維空陣列,宣告上下 左右範圍
For i = 1 To UBound(Brr)
'↑設順迴圈!i從1到 Brr陣列最大索引列號
   If Trim(Brr(i, 2)) = "" Then GoTo i01 Else R = R + 1
   '↑如果關鍵欄空格就略過,否則就令R變數累加1
   Crr(R, 1) = R
   Crr(R, 2) = Trim(Brr(i, 1))
   Crr(R, 3) = Trim(Brr(i, 2))
   Crr(R, 4) = Trim(Split(Brr(i, 3) & vbLf, vbLf)(0))
   Crr(R, 5) = Val(Brr(i, 4))
   Crr(R, 6) = Mid(Trim(Brr(i, 3)), InStr(Trim(Brr(i, 3)), vbLf) + 1)
   '↑將Brr陣列值寫入Crr陣列中
i01: Next
If R = 0 Then MsgBox "沒有資料": Exit Sub
With [整理!A2].Resize(R, 6)
   .Value = Crr
   '↑將Crr陣列值寫入儲存格中
   .Borders.LineStyle = xlContinuous
   '↑設定格線
End With
End Sub
作者: hcm19522    時間: 2024-2-26 14:51

(搜尋編號12428) google網址:https://hcm19522.blogspot.com/
作者: aassddff736    時間: 2024-2-27 22:05

回復 6# hcm19522

大神求助
我試著修改有以下兩個問題

[    [attach]37518[/attach]

]37516[/attachimg]
1."記錄表"我這樣帶似乎跑太慢,跟不上 列印速度

[attach]37517[/attach]
2.黃色螢光筆部分有想更簡潔方式嗎?




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