返回列表 上一主題 發帖

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

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

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

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

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

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

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

出貨.zip (10.86 KB)

回復 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        

這樣下去區分..

TOP

mark15jill 謝謝,這個大概只能謝謝了。

TOP

一般而言,在版面掛了這些時間,如果沒人有回,我推定就沒救了。
我想出來的方法是
1.請人寫 Customer-maid 程式。
2.用Excel 當做 word 用,由 Excel 做,從Sheet1做到 Sheet2去。
我決定採用2法先做一下,看狀況如何。有瓶頸再 divide 出來,請版上大家來幫忙 Conquer.

TOP

本帖最後由 hugh0620 於 2011-5-3 17:17 編輯

回復 3# Baracuda

    這個問題~大概可以幫你解決~
    不過有點需要澄清一些問題
   問題有3,如下,不求能夠完全解決
   1.可否操作直接套印出貨單號、品名、數量、單價、金額,但同一張出貨單,只有一位訂購客戶,所以只要出現一次。
   2.如果同時有3張出貨單要印,可否依出貨單號不同時,判斷需要換頁列印。
     Q:樓主的意思是否只要出貨單號不要樣就列印一張新的~ 不用一張列印很多出貨單號??
           
   3.可否有當頁出貨單的合計數可以列印上去(這個如果不行,還可以自已加過手寫上去)
       A:這個問題比較簡單唷~ 並不困難

   樓主~ 有看過您WORD檔的輸出範本~ 如果是這樣~ 建議您就直接在EXCEL做輸出列印的東作~
    反而會更簡單一點
   如附件的方式是否可以滿足您的需求呢??  (若可以才來撰寫程式碼)
      出貨單合併列印輸出問題_格式.rar (8.68 KB)
學習才能提升自己

TOP

mark15jill 謝謝,這個大概只能謝謝了。
Baracuda 發表於 2011-5-3 16:34



不好意思 能力不足  僅能提供簡易建議...
我是想如果不是說  超級急件(就是短時間要) 的話 倒是可以用以下方法...

用vba 將篩選出來的資料 丟去一個固定格式的excel檔案(預先就要建立好)
這樣的話 假使固定格式確定可以印出樓主想要的資料的話
就比較好辦... 如果不行 那 可能還得請 論壇的壹些神人出馬了+.+

ps 對於樓主提到的  “ 在版面掛很多天的話 沒人回應就是沒救”
      關於這點,我只能說 能的話 除了在這提問外 可以去google 找壹些相關的方式  
      並不是說這邊怎樣  而是 有些時候 自己找的 反而比較知道怎去處理...

TOP

回復 4# Baracuda
這樣用合併列印好像不是很合適
直接用EXCEL輸出出貨單比較簡單
  1. Sub ex()
  2. Dim Ar(), A As Range, C As Range
  3. With Sheet2
  4. For Each A In .Range(.[A2], .[A65536].End(xlUp))
  5.    With Sheet1
  6.    For Each C In .Range(.[A2], .[A65536].End(xlUp))
  7.       If C = A Then
  8.       ReDim Preserve Ar(s)
  9.       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)
  10.       s = s + 1
  11.       End If
  12.    Next
  13.    End With
  14.    With Sheet5
  15.    i = 0: .[F3] = A: .[B5:F9] = ""
  16.    Do Until i > UBound(Ar)
  17.       r = i Mod 5
  18.       .Cells(r + 5, 2).Resize(, 5) = Array(Ar(i)(2), Ar(i)(3), Ar(i)(4), Ar(i)(5), Ar(i)(6))
  19.       If r = 4 Or i = UBound(Ar) Then
  20.       .[F10] = r + 1 & "筆共" & s & "筆"
  21.          .PrintPreview
  22.          .[B5:F9] = ""
  23.       End If
  24.       i = i + 1
  25.    Loop
  26.    End With
  27.    With Sheet3 '寫入輸出內容工作表,若不採用合併列印可刪除此區段
  28.    .[A65536].End(xlUp).Offset(1).Resize(s, 7) = Application.Transpose(Application.Transpose(Ar))
  29.    End With
  30.    s = 0: Erase Ar
  31. Next
  32. End With
  33. End Sub
複製代碼
出貨單.rar (15.68 KB)
學海無涯_不恥下問

TOP

hugh0620謝謝,格式是小事,大概都可以做出來。

TOP

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

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

        靜思自在 : 君子為目標,小人為目的。
返回列表 上一主題