返回列表 上一主題 發帖

出貨單合併列印輸出問題,有無直接操作方法,或需採用VBA解決。

出貨單合併列印輸出問題,有無直接操作方法,或需採用VBA解決。

現有出貨單(一單號有多項產品要輸出),詳Sheet「輸出內容」
因為出貨當時,即需要即時印出來送給客戶。

Sheet 內容說明
「出貨單內容」:訂單要出貨的內容
「出貨單客戶」:訂單是那位客戶訂購的
「輸出內容」:要給Word、合併列印輸出用的

問題有3,如下,不求能夠完全解決
1.可否操作直接套印出貨單號、品名、數量、單價、金額,但同一張出貨單,只有一位訂購客戶,所以只要出現一次。
2.如果同時有3張出貨單要印,可否依出貨單號不同時,判斷需要換頁列印。
3.可否有當頁出貨單的合計數可以列印上去(這個如果不行,還可以自已加過手寫上去)

1.的部分比較需要做,因為手寫不快,容易錯。
2.至不濟,分批列印也還好

整個問題有點難度,如果不能全部解決,請問有無解題的方向指導,也很感謝。

出貨.zip (10.86 KB)

回復 7# Hsieh

超好用的....套一個空白表就可以印出所要的表單
比連結到WORD做合併列印還贊

TOP

找了好久,終於找到類似的解決方法
真是受教了~

TOP

[版主管理留言]
  • GBKEE(2015/9/14 10:04): 要上傳檔案看看

請問版主:
若列印一式三聯,如出貨單 表格略有不同,內容一樣列印三張 一張收執聯,一張留底聯,一張存查,該如何修改,謝謝!
max

TOP

GBKEE版主,謝謝。這樣我知道這個陣列的語法了。

TOP

回復 12# Baracuda
是一維陣列, 非二維陣列.
  1. Sub Ex()
  2.     Dim Ar(2), i%, y%, a
  3.     Ar(0) = Array(1, 2, 3, 4)
  4.     Ar(1) = Array("A", "B", "C", "D")
  5.     Ar(2) = Array("甲", "乙", "丙", "丁")
  6.     For i = 0 To UBound(Ar)
  7.         For y = 0 To UBound(Ar(i))
  8.             [a1].Offset(i, y) = Ar(i)(y)
  9.         Next
  10.     Next
  11. End Sub
複製代碼

TOP

GBKEE版主
一般 Array2維陣列用法是Ar(i,2)但這裏用的是Ar(i)(2)。
這個語法我沒看過,所以想跟他確定一下。
網路上我有 Google 過,量太大,不容易找這個特定的語法。
Hsieh版主有點是「一招包一路」的方式。

TOP

這個方式在這裏  Work,只是我沒看過有人這樣用
可搜尋 Array 看看

TOP

Hsieh超級版主你真的很神,我把整個內容看完了。
你的VBA,還有考慮到超過5筆列印上限的問題。
其他一些諸如要累計、格式…都算小問題。

你的資料中,有個地方我要請教你
.Cells(r + 5, 2).Resize(, 5) =(Ar(i)(2), Ar(i)(3), Ar(i)(4), Ar(i)(5), Ar(i)(6))
這個好像是2維陣列的方式,你是不是用陣列Ar()包陣列的方式(另外的元素2~5,0為訂購客戶的名稱,1是出貨單號)。
這個方式在這裏  Work,只是我沒看過有人這樣用。

TOP

Hsieh版主:
我有試過你的東西,資料可以做出來。雖然我還不是很完全明白內容。
我寫的VBA一定是沒有你的精簡。
謝謝你的回答,我省去不少時間發展我的 VBA。

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題