返回列表 上一主題 發帖

[發問] 請教關於合併列印問題

回復 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
複製代碼

TOP

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

Word裡有一些l欄位 在Excel欄位中並沒有出現 請在Excel檔案中將它補齊
例如Excel欄位中沒有相片欄,要補上相片欄,資料內容是空白也沒有關係.
請再試試看

TOP

回復 11# 偉婕
修改    Set Rng = .WORKBOOKS(1).SHEETS(1).Range(First).End(2)
成如下 Set Rng = .WORKBOOKS(1).SHEETS(1).Range("IV2").End(1)

TOP

本帖最後由 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)     '取得資料

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題