出貨單合併列印輸出問題,有無直接操作方法,或需採用VBA解決。
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 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)
|
|
|
學海無涯_不恥下問
|
|
|
|
|