出貨單合併列印輸出問題,有無直接操作方法,或需採用VBA解決。
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
出貨單合併列印輸出問題,有無直接操作方法,或需採用VBA解決。
現有出貨單(一單號有多項產品要輸出),詳Sheet「輸出內容」
因為出貨當時,即需要即時印出來送給客戶。
Sheet 內容說明
「出貨單內容」:訂單要出貨的內容
「出貨單客戶」:訂單是那位客戶訂購的
「輸出內容」:要給Word、合併列印輸出用的
問題有3,如下,不求能夠完全解決
1.可否操作直接套印出貨單號、品名、數量、單價、金額,但同一張出貨單,只有一位訂購客戶,所以只要出現一次。
2.如果同時有3張出貨單要印,可否依出貨單號不同時,判斷需要換頁列印。
3.可否有當頁出貨單的合計數可以列印上去(這個如果不行,還可以自已加過手寫上去)
1.的部分比較需要做,因為手寫不快,容易錯。
2.至不濟,分批列印也還好
整個問題有點難度,如果不能全部解決,請問有無解題的方向指導,也很感謝。 |
-
-
出貨.zip
(10.86 KB)
|
|
|
|
|
|
暱稱: 隨風飄蕩的羽毛 頭銜: [御用]潛水艇
高中生 
- 帖子
- 852
- 主題
- 79
- 精華
- 0
- 積分
- 918
- 點名
- 0
- 作業系統
- Windows 7 , XP
- 軟體版本
- Office 2007, Office 2003,Office 2010,YoZo Office
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 宇宙
- 註冊時間
- 2011-4-8
- 最後登錄
- 2024-2-21
|
2#
發表於 2011-5-2 16:15
| 只看該作者
回復 1# Baracuda
稍微看了一下...
我的能力不太高只能提供些簡單建議..
1的部份 如果照樓主所述的話 基本上 可以用篩選 將其區分出來...
如
甲客戶 10001001 A產品 4 5.18 21
甲客戶 10001001 B產品 3 45.75 137
甲客戶 10001001 D產品 6 14.93 90
甲客戶 10001001 E產品 2 28.34 57
甲客戶 10002002 A產品 3 5.18 16
丁客戶 10002001 H產品 7 12.96 91
丁客戶 10002001 J產品 9 90.58 815
丁客戶 10002001 C產品 6 21.05 126
這樣下去區分.. |
|
|
|
|
|
|
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
3#
發表於 2011-5-3 16:34
| 只看該作者
|
|
|
|
|
|
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
4#
發表於 2011-5-3 16:38
| 只看該作者
一般而言,在版面掛了這些時間,如果沒人有回,我推定就沒救了。
我想出來的方法是
1.請人寫 Customer-maid 程式。
2.用Excel 當做 word 用,由 Excel 做,從Sheet1做到 Sheet2去。
我決定採用2法先做一下,看狀況如何。有瓶頸再 divide 出來,請版上大家來幫忙 Conquer. |
|
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
5#
發表於 2011-5-3 17:00
| 只看該作者
本帖最後由 hugh0620 於 2011-5-3 17:17 編輯
回復 3# Baracuda
這個問題~大概可以幫你解決~
不過有點需要澄清一些問題
問題有3,如下,不求能夠完全解決
1.可否操作直接套印出貨單號、品名、數量、單價、金額,但同一張出貨單,只有一位訂購客戶,所以只要出現一次。
2.如果同時有3張出貨單要印,可否依出貨單號不同時,判斷需要換頁列印。
Q:樓主的意思是否只要出貨單號不要樣就列印一張新的~ 不用一張列印很多出貨單號??
3.可否有當頁出貨單的合計數可以列印上去(這個如果不行,還可以自已加過手寫上去)
A:這個問題比較簡單唷~ 並不困難
樓主~ 有看過您WORD檔的輸出範本~ 如果是這樣~ 建議您就直接在EXCEL做輸出列印的東作~
反而會更簡單一點
如附件的方式是否可以滿足您的需求呢?? (若可以才來撰寫程式碼)
出貨單合併列印輸出問題_格式.rar (8.68 KB)
|
|
學習才能提升自己
|
|
|
|
|
暱稱: 隨風飄蕩的羽毛 頭銜: [御用]潛水艇
高中生 
- 帖子
- 852
- 主題
- 79
- 精華
- 0
- 積分
- 918
- 點名
- 0
- 作業系統
- Windows 7 , XP
- 軟體版本
- Office 2007, Office 2003,Office 2010,YoZo Office
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 宇宙
- 註冊時間
- 2011-4-8
- 最後登錄
- 2024-2-21
|
6#
發表於 2011-5-3 17:22
| 只看該作者
mark15jill 謝謝,這個大概只能謝謝了。
Baracuda 發表於 2011-5-3 16:34 
不好意思 能力不足 僅能提供簡易建議...
我是想如果不是說 超級急件(就是短時間要) 的話 倒是可以用以下方法...
用vba 將篩選出來的資料 丟去一個固定格式的excel檔案(預先就要建立好)
這樣的話 假使固定格式確定可以印出樓主想要的資料的話
就比較好辦... 如果不行 那 可能還得請 論壇的壹些神人出馬了+.+
ps 對於樓主提到的 “ 在版面掛很多天的話 沒人回應就是沒救”
關於這點,我只能說 能的話 除了在這提問外 可以去google 找壹些相關的方式
並不是說這邊怎樣 而是 有些時候 自己找的 反而比較知道怎去處理... |
|
|
|
|
|
|
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 119
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-5-17
               
|
7#
發表於 2011-5-3 23:59
| 只看該作者
回復 4# Baracuda
這樣用合併列印好像不是很合適
直接用EXCEL輸出出貨單比較簡單- Sub ex()
- Dim Ar(), A As Range, C As Range
- With Sheet2
- For Each A In .Range(.[A2], .[A65536].End(xlUp))
- With Sheet1
- For Each C In .Range(.[A2], .[A65536].End(xlUp))
- If C = A Then
- ReDim Preserve Ar(s)
- Ar(s) = Array(A.Offset(, 1).Value, A, C.Offset(, 1).Value, C.Offset(, 2).Value, C.Offset(, 3).Value, C.Offset(, 4).Value, C.Offset(, 5).Value)
- s = s + 1
- End If
- Next
- End With
- With Sheet5
- i = 0: .[F3] = A: .[B5:F9] = ""
- Do Until i > UBound(Ar)
- r = i Mod 5
- .Cells(r + 5, 2).Resize(, 5) = Array(Ar(i)(2), Ar(i)(3), Ar(i)(4), Ar(i)(5), Ar(i)(6))
- If r = 4 Or i = UBound(Ar) Then
- .[F10] = r + 1 & "筆共" & s & "筆"
- .PrintPreview
- .[B5:F9] = ""
- End If
- i = i + 1
- Loop
- End With
- With Sheet3 '寫入輸出內容工作表,若不採用合併列印可刪除此區段
- .[A65536].End(xlUp).Offset(1).Resize(s, 7) = Application.Transpose(Application.Transpose(Ar))
- End With
- s = 0: Erase Ar
- Next
- End With
- End Sub
複製代碼
出貨單.rar (15.68 KB)
|
|
學海無涯_不恥下問
|
|
|
|
|
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
8#
發表於 2011-5-4 10:21
| 只看該作者
hugh0620謝謝,格式是小事,大概都可以做出來。 |
|
|
|
|
|
|
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
9#
發表於 2011-5-4 10:23
| 只看該作者
Hsieh版主:
我有試過你的東西,資料可以做出來。雖然我還不是很完全明白內容。
我寫的VBA一定是沒有你的精簡。
謝謝你的回答,我省去不少時間發展我的 VBA。 |
|
|
|
|
|
|
- 帖子
- 132
- 主題
- 25
- 精華
- 0
- 積分
- 199
- 點名
- 0
- 作業系統
- window XP
- 軟體版本
- Excel 2010
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣 新竹
- 註冊時間
- 2010-6-1
- 最後登錄
- 2022-7-14
  
|
10#
發表於 2011-5-5 13:41
| 只看該作者
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,只是我沒看過有人這樣用。 |
|
|
|
|
|
|