Board logo

標題: [發問] 請教關於合併列印問題 [打印本頁]

作者: 偉婕    時間: 2010-10-11 19:02     標題: 請教關於合併列印問題

附加檔是網友來信問的問題
他想將Excel中的資料,透過合併列印至Word表中
目前在執行上會產生資料遺漏現象
所以我建議他改以一頁一筆,再進行處理
不知各位有沒有較好的處理方式
謝謝!
作者: GBKEE    時間: 2010-10-12 20:10

回復 1# 偉婕
關於word 的vba 我不熟在此獻醜了,如有缺失尚請指教 word內有一欄為相片尚需高手指引  

附件的xls與word的資料不一致 請自行修正  
  1. Sub Ex()
  2.     Dim MyXls As Object, Rng As Object, First As String, ii%, i%, T%, C%
  3.     Set MyXls = CreateObject("EXCEL.APPLICATION")
  4.     First = "E2"                                                '附檔991011.xls檔案資料中第一筆資料的位置
  5.     With MyXls
  6.         .Visible = True
  7.         .WORKBOOKS.Open ("D:\TEST\991011.xls")                  '打開 xls資料檔
  8.         Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First).End(2)
  9.         Set Rng = Rng.End(4)
  10.         Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First, Rng)     '取得資料
  11.     End With
  12.     Documents.Open "d:\test\991011.doc"                         ' 打開指定的word
  13.     If Rng.Rows.Count > 5 Then                                  ' 複製表格
  14.         For i = 6 To Rng.Rows.Count Step 5                      'Word每一資料表格數=5
  15.             Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Range.End - 1, End:=ActiveDocument.Range.End)
  16.             With ActiveDocument.Tables(1)
  17.                 .Select
  18.                 Selection.Copy
  19.             End With
  20.             myRange.Select
  21.             Selection.TypeParagraph
  22.             Selection.TypeParagraph
  23.             Selection.Paste
  24.         Next
  25.     End If
  26.     C = 1:    T = 1
  27.     For i = 1 To Rng.Rows.Count   '''''''''''''''複製xls資料 到 Word表格
  28.         For ii = 1 To Rng.Columns.Count
  29.             ActiveDocument.Tables(T).Cell(ii + IIf(ii <= 10, 1, 2), 1 + IIf(ii < 10, C, C + 1)).Range = Rng(i, ii)
  30.         Next
  31.         If i Mod 5 <> 0 Then
  32.             C = C + 1
  33.         Else
  34.             T = Int(i / 5) + 1:    C = 1
  35.        End If
  36.     Next     '''''''''''''''複製xls資料 到 Word表格   
  37.     MyXls.Quit                                 '關閉xls 檔案   
  38.     'ActiveDocument.PrintOut                   '印列檔案
  39.     'ActiveDocument.SaveAs "d:\test\???doc"    '存檔
  40.     Application.Quit                           '關閉 Word
  41. End Sub
複製代碼

作者: 偉婕    時間: 2010-10-12 22:38

回復 2# GBKEE

謝謝[GBKEE]版主
我不懂VBA
不過由您寫的VBA看來,不是由E2開始複製嗎?
我將Excel欄位的順序調成跟Word的一樣,可是怎麼位置還是會錯亂?
若有誤解,還請您解說一下,謝謝!

關於插入外部圖檔,我上網查了一下
不過怎麼套用進來,我就不行了
  1. Sub picture()
  2. ActiveDocument.Tables(1).Cell(2, 1).Select    Selection.InlineShapes.AddPicture FileName:="D:\991011.jpg"
  3. End Sub
複製代碼

作者: oobird    時間: 2010-10-12 23:58

見附件,如在excel內做是否能[attach]3139[/attach]接受?
作者: 偉婕    時間: 2010-10-13 00:07

回復 4# oobird

這是網友問我的問題(聽說是國中生的作業 @@)
我已經給對方"不是很有效率"的解決方法了,提出來只是我個人想知道有沒有什麼好方法而已
我是覺得只要能夠解決問題,沒有什麼可不可以,畢竟解答不只一種
歡迎[oobird]版主提供可能的解決方法
謝謝!
作者: oobird    時間: 2010-10-13 00:17

因為單純用excel操作,只是套套位置就方便多了。
若是學生作業應該不能作這樣的更改。
作者: 偉婕    時間: 2010-10-13 00:24

回復 6# oobird

作業好幾個星期前就交了
如果可以,還是希望[oobird]版主提供在Excel的作法
謝謝!
作者: GBKEE    時間: 2010-10-13 06:37

本帖最後由 GBKEE 於 2010-10-13 06:38 編輯
我將Excel欄位的順序調成跟Word的一樣,可是怎麼位置還是會錯亂?
偉婕 發表於 2010-10-12 22:38

Word裡有一些l欄位 在Excel欄位中並沒有出現 請在Excel檔案中將它補齊
例如Excel欄位中沒有相片欄,要補上相片欄,資料內容是空白也沒有關係.
請再試試看
作者: oobird    時間: 2010-10-13 11:42

本帖最後由 oobird 於 2010-10-13 11:43 編輯
回復  oobird

作業好幾個星期前就交了
如果可以,還是希望[oobird]版主提供在Excel的作法
謝謝!
偉婕 發表於 2010-10-13 00:24

這是函數版的。當最後頁人數不滿時可把多餘的相片設為不列印!
作者: chiahuo    時間: 2010-10-13 14:05

小弟試了,如果把word的表格方向改為橫式的話,就可以簡單的解決
直式的話就會有問題。
作者: 偉婕    時間: 2010-10-13 17:46

回復 8# GBKEE

若依Word檔補齊Excel欄位,執行後在Word中只會出現[姓名]及[學號]資料,其餘資料都未顯示
不知什麼原因?
作者: 偉婕    時間: 2010-10-13 18:05

回復 9# oobird

謝謝[oobird]版主
從沒這樣用過,獲益良多!
作者: 偉婕    時間: 2010-10-13 18:31

回復 10# chiahuo

我試過好像也會漏資料
作者: GBKEE    時間: 2010-10-13 20:37

回復 11# 偉婕
修改    Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First).End(2)
成如下 Set Rng = .WORKBOOKS(1).SHEETS(1).Range("IV2").End(1)
作者: 偉婕    時間: 2010-10-13 20:58

回復 14# GBKEE

謝謝[GBKEE]版主,可以了
這行是在定義範圍,可為何是 Range("IV2").End(1)
可否說明一下意思,謝謝!
作者: oobird    時間: 2010-10-13 21:10

End(1)
=End(xlToLeft)
作者: GBKEE    時間: 2010-10-13 21:21

本帖最後由 GBKEE 於 2010-10-13 21:23 編輯

回復 15# 偉婕
Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First).End(2)  ->.End(2) 往右到最後一個資料的位置.原本檔案因中間遇到空白會在空白前停止,所以改成從檔案的最後一欄(2003版 - IV)  
Set Rng = .WORKBOOKS(1).SHEETS(1).Range("IV2").End(1) -> End(1)  往左遇到第一有資料的位置
  
Set Rng = Rng.End(4)   ->End(4) -> End(4)  往下到最後一個資料的位置
Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First, Rng)     '取得資料
作者: chiahuo    時間: 2010-10-14 10:48

本帖最後由 chiahuo 於 2010-10-14 10:50 編輯

回復 13# 偉婕

這個是我測試的檔案,格式是橫的
12人每欄資料都可以,參考看看
EXCEL檔是有最早的格式
作者: 偉婕    時間: 2010-10-14 17:37

回復 16# oobird
謝謝[oobird]版主的解說

回復 17# GBKEE    
謝謝[GBKEE]版主詳細的解說,已明白囉!
作者: PD961A    時間: 2010-10-15 08:14

回復 19# 偉婕


    請問偉婕版主
在試作檔案後如果WORD排版和EXCEL端一樣則合併列印會比較簡單
可以請問最後那個"國中生"的答案..怎麼做出來的..(老師的標準答案是什麼??)謝謝您.... ^ ^....

[attach]3188[/attach]

[attach]3189[/attach]


[attach]3190[/attach]
作者: PD961A    時間: 2010-10-15 08:19

這是函數版的。當最後頁人數不滿時可把多餘的相片設為不列印!
oobird 發表於 2010-10-13 11:42



    請問版主
您的EXCEL資料端還是用到"合併儲存格"您所說的用"文字方塊"解決的方式..如何設定??謝謝您....

[attach]3191[/attach]
作者: oobird    時間: 2010-10-15 08:48

這個合併儲存格並不影響資料的存取,沒有道理不讓它合併。
文字方塊只是為了讓無合併的儲存格列印看起來"像"合併儲存格而已。
就是拉出一個如圖黃色部分大小的方塊遮蓋a11:a16的前半段。
作者: PD961A    時間: 2010-10-15 08:51

回復 22# oobird

   版主:
    教一下您拿手的"動畫"嘛!!! 感恩!  ^ ^...
作者: oobird    時間: 2010-10-15 09:09

搜索了一下,這裡有。http://www.bt06.com/soft/5127.html
是否安全就不知道了。
我用的是以前人家貼在論場上分享的。
作者: PD961A    時間: 2010-10-15 09:20

回復 24# oobird

版主您誤會啦...不是"動畫程式"
是您PO的這段字
    文字方塊只是為了讓無合併的儲存格列印看起來"像"合併儲存格而已。
就是拉出一個如圖黃色部分大小的方塊遮蓋a11:a16的前半段。


找不到"文字方塊"在哪裡?? 謝謝您.... ^ ^..
作者: oobird    時間: 2010-10-15 09:48

本帖最後由 oobird 於 2010-10-15 11:14 編輯

就是textbox呀。
作者: PD961A    時間: 2010-10-15 10:15

回復 26# oobird


    但是這樣在EXCEL資料表建置..會不會和夏板主說的"儲存格基本功"....不太合???
作者: oobird    時間: 2010-10-15 10:32

論場中討論的問題十之八九是不符資料庫理念的,否則又怎會有這麼多話題?
如飛機速度最快,但你不能一生只到有機場的地方旅遊吧?
作者: 偉婕    時間: 2010-10-16 13:49

謝謝[chiahuo]與[PD961A]提供的方法

回復 20# PD961A
網友沒說同事兒子的老師最後的答案是什麼,所以沒法分享
作者: PD961A    時間: 2010-10-16 13:55

回復 29# 偉婕


    版主
謝謝您..不過真的很想知道..因為"很神奇"
現在的國中生作業都這麼難嗎?...好辛苦..
作者: HuAiPM    時間: 2011-1-18 14:16

回復 20# PD961A


    我也發生合併列印有資料遺失的情況發生. 另外, 合併列印不知用何方法字體能做直式合併列印輸出, 謝謝!
作者: birdy0815    時間: 2011-1-19 21:43

我用EXCEL的資料 用WORD的合併列印  也是無法完成 也很奇怪  不懂  所以我都WORD對WORD作合併列印  EXCEL就作excel的 用工作表設計表格來列印
作者: jimmuLu    時間: 2011-6-3 10:10

回復 29# 偉婕


    偉婕 版大:

您所說的問題我想應該是在合併列印中一頁印出多人資料的問題,合併列印一般好像都常用在類似列印信封之類的,

一頁只印一個人的資料,但是問題中的版面須印出5人的資料,所以如果將5人資料修改成如附件XLS檔(一列5筆資料,欄位再區分一下)

應該可以得到所要的答案吧!:D
作者: 偉婕    時間: 2011-6-3 23:57

回復 33# jimmuLu

謝謝您提供另一種解決的方法!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)