Board logo

標題: [發問] EXCEL班表程式自動轉換WORD [打印本頁]

作者: d82625348    時間: 2018-2-23 11:15     標題: EXCEL班表程式自動轉換WORD

各位大大好,詢問各位如何將EXCEL利用VBA,如附件一、附件二,利用附件一格式轉換成WORD附件二那樣,抓取日期後,顯示每次早班巡查人員,不然公司每次都要一直打,人數多、班次多還是一次挺綑擾的事,煩請各位大大幫忙解答,謝謝大家!
作者: nolookyou    時間: 2018-5-23 18:04

回復 1# d82625348


    版大晚安,讓小弟獻醜幫您一下~
    我發現站上需要EXCEL內的資料轉成WORD的需求偶爾還是有,
    但是查站上文章或GOOGLE上面對於EXCEL內的資料轉成WORD資料,
    程式碼寫的內容,有些寫的很片段,有些寫的方法有點迂迴,

    所以小弟獻上自行研究最簡單與直覺的寫法給未來有需要的大家,
    以下是以此題為範例的寫法,按下[資料寫入WORD]按鈕,便能將EXCEL內的資料轉寫到WORD裡面:
   
    [attach]28763[/attach]

    [attach]28764[/attach]
   
    [attach]28765[/attach]
  1. Private Sub CommandButton1_Click()
  2. Dim WDApp As Object
  3. Dim WDDoc As Object
  4. Dim WDSelect As Object
  5. Dim i As Integer
  6. Dim j As Integer
  7. Dim date_str As String
  8. Dim name_str As String

  9. Set WDApp = CreateObject("Word.Application")
  10. Set WDDoc = WDApp.Documents.Add
  11. Set WDSelect = WDApp.Selection

  12. WDApp.Visible = True

  13. With WDSelect
  14.     For i = 2 To 20 Step 3
  15.    
  16.         date_str = Worksheets("工作表1").Cells(1, i)
  17.         .TypeText Text:=date_str
  18.         .TypeParagraph
  19.    
  20.         name_str = ""
  21.         For j = 2 To 8
  22.             If Worksheets("工作表1").Cells(j, i) = "巡" Then name_str = name_str & Worksheets("工作表1").Cells(j, 1) & "、"
  23.         Next j
  24.         
  25.         .TypeText Text:=Left(name_str, Len(name_str) - 1)
  26.         .TypeParagraph
  27.         .TypeParagraph
  28.     Next i
  29. End With

  30. End Sub
複製代碼
有錯誤或有更精進寫法,再麻煩站上前輩與各路大神不吝指教,來造福未來有需要的網友們。
作者: d82625348    時間: 2018-6-9 18:53

太實用了~謝謝nolookyou提供!




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