iT邦幫忙

1

VBA編寫問題:自動換行

  • 分享至 

  • xImage

想請教一下各位大神~~

我目前正在做客戶成本利潤分析表,每一個客戶的資料都是單獨的工作表,我希望可以在每一個客戶的工作表上有一個可以將I5:N5的資料複製貼上到總表的巨集按鈕,-而總表內不超過300筆資料。
(註:我已經會把每一個客戶工作表在相同位置放同一個巨集按扭了)

我現在卡在條件式迴圈裡,我的想法是透過FOR NEXT 自動換行,但我觀念還是不太好,在這迴圈內會一直將同一筆資料複製貼上300次,確實是有自動換行,但我只希望複製貼上一次,等下一次按另一個客戶工作表的巨集按紐複製資料時再自動換到總表下一行貼上。
請問我該怎麼編寫呢? 再麻煩各位幫小弟解惑! 辛苦各位! 謝謝!

sub 彙總資料()
Dim 客戶姓名 As String
Dim 車款 As String
Dim 車款總價 As String
Dim X as Interger

Range("I5:N5").Select
Selection.Copy

客戶姓名 = ThisWorkbook.ActiveSheet.Name
車款 = ThisWorkbook.ActiveSheet.Range("B2")
車款總價 = ThisWorkbook.ActiveSheet.Range("B3")
成本價 = ThisWorkbook.ActiveSheet.Range("C6")

sheets("總表").Select

If Cells(X, 3) = 0 Then
Range("A2").Offset(X - 2) = 客戶姓名
Range("B2").Offset(X - 2) = 車款
Range("C2").Offset(X - 2) = 車款總價
Range("D2").Offset(X - 2) = 成本價
Range("E2").Offset(X - 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False

ElseIf Cells(X, 3) <> 0 And Cells(X + 1, 3) = 0 Then
Range("A2").Offset(X - 1) = 客戶姓名
Range("B2").Offset(X - 1) = 車款
Range("C2").Offset(X - 1) = 車款總價
Range("D2").Offset(X - 1) = 成本價
Range("E2").Offset(X - 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False

End If

Next X

ant1017 iT邦新手 2 級 ‧ 2022-11-01 11:47:39 檢舉
對VBA不熟,但依邏輯來看,可以將換行寫在迴圈外,或者透過判斷(IF)來做換行
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-11-01 13:50:06

我看不太懂迴圈要用在什麼地方(你程式裡也沒有寫 FOR)
我改寫你的程式
結果如下
1.執行前
https://ithelp.ithome.com.tw/upload/images/20221101/20001787zWmrNXV7lH.png
https://ithelp.ithome.com.tw/upload/images/20221101/20001787XubvEbVrpM.png
https://ithelp.ithome.com.tw/upload/images/20221101/20001787L1QvB8rz5u.png
2.執行VBA
https://ithelp.ithome.com.tw/upload/images/20221101/20001787wSUr6GsYaC.png
3.執行後結果
在「特斯拉」工作表執行 VBA 後
https://ithelp.ithome.com.tw/upload/images/20221101/20001787LiYwGChHka.png
接著在「富士康」工作表執行 VBA 後
https://ithelp.ithome.com.tw/upload/images/20221101/20001787cPeTHeL4gg.png

大致上就是
把該工作表的I5:N5複製然後貼在「總表」的最後一列空白列

我要發表回答

立即登入回答