Word與Excel用VBA交互(二)-批量生成檔案

2021-02-14 Excel心得

昨天和小夥伴們分享了用VBA把Excel的內容寫入到Word的表格中,生成一個一個Word的方法

今天和小夥伴們分享用VBA把Excel的內容寫入到Word文字中間去

下面的是一個Word模板文件,一般都是先做一個模板,然後把內容填到模板,這樣VBA代碼寫起來比較好寫。

要生成下面的忍者檔案,每一個忍者生成一個Word文檔,保存在當前文件夾下面

第3行的代碼,創建Word應用程式對象,相當於啟動Word軟體

第5行的代碼,把當前工作表的已使用區域賦值給數組

第7行的代碼,循環數組的每一行,從第2行開始循環,第1行是標題

第8行的代碼,打開當前文件夾下面的一個檔案.docx的Word文檔

咱們先來看第20行的代碼,word.range(11,11),小夥伴數一下從第一個字符到編號有10個字符當你把滑鼠定位在編號後面這,10+1,就是要插入字符的位置

可以用下面的代碼獲取光標所在的字符起始位置和字符結束位置

代碼要在Word vba模塊裡才可以使用

Sub m()MsgBox Selection.Start & ";" & Selection.EndEnd Sub

********

為什麼要從最後往前插入呢?

小夥伴們看模板文檔,一開始這幾個要插入內容的位置都是固定的,但是如果從前面往後面插入內容,當你第一個編號插入內容了,後面要插入內容的位置就變動了

第9行的代碼是在文檔末尾插入圖片,InlineShapes.AddPicture是Word vba插入圖片的方法

InsertAfter方法是在所在位置後面插入文本

第21行的代碼,把Word文檔另存為到當前文件夾下面,命名為忍者名字+檔案

第22行的代碼,關閉打開的Word文檔

Sub main()Dim word, appSet app = CreateObject("Word.Application")Dim arrarr = ActiveSheet.UsedRangeDim i As LongFor i = 2 To UBound(arr)    Set word = app.documents.Open(ThisWorkbook.Path & Application.PathSeparator & "檔案.docx")    word.Range(85, 85).InlineShapes.AddPicture arr(i, 12), False, True    word.Range(81, 81).InsertAfter arr(i, 11)    word.Range(71, 71).InsertAfter arr(i, 10)    word.Range(61, 61).InsertAfter arr(i, 9)    word.Range(51, 51).InsertAfter arr(i, 8)    word.Range(41, 41).InsertAfter arr(i, 7)    word.Range(32, 32).InsertAfter arr(i, 6)    word.Range(27, 27).InsertAfter arr(i, 5)    word.Range(24, 24).InsertAfter arr(i, 4)    word.Range(20, 20).InsertAfter arr(i, 3)    word.Range(16, 16).InsertAfter arr(i, 2)    word.Range(11, 11).InsertAfter arr(i, 1)    word.SaveAs ThisWorkbook.Path & Application.PathSeparator & arr(i, 2) & "檔案.docx"    word.CloseNext iEnd Sub

相關焦點

  • 巧用excel+word 快速批量生成各種文檔
    在我們工作中,有些工作可能單獨用excel或者單獨用word都可以完成,但是使用單獨的軟體可能操作起來會比較麻煩。今天來給大家分享excel+word的經典組合運用——郵件合併的應用。如果要一個一個的複製粘貼,也是可以的,只是相當耗時和麻煩,這時運用excel和word的郵件合併功能則是非常高效快捷的。詳細實現方法,見下面視頻:對於相同格式內容的文檔,其中文檔中個別信息是變量信息,其他都是固定信息的場景下,可以通過excel+word的組合應用,快速生成多個文檔信息。
  • 批量生成二維碼
    Excel批量生成二維碼在工作中一些在線二維碼生成工具有很多。批量生成二維碼,用的人必然知道他的大用處,但是二維碼生成工具中,批量生成這個基本都是收費功能。前兩天了解到可以用vba批量生成二維碼,研究了一下,借鑑了部分其他人的源碼,做出來了一個簡單的批量生成二維碼的小工具。
  • 收藏 | 37個Excel vba實例匯總(附贈VBA教程)
    用過Excel的朋友肯定會遇到各種繁瑣的數據處理問題,其實很多時候可以藉助VBA一鍵實現N多複雜、繁瑣的操作,大大解放你的雙手,提高效率。
  • 用word郵件合併功批量生成學生成績單
    在辦公過程中,經常會遇到要從做好的excel表格中選取每一行中的信息,複製粘貼到word中生成一頁一頁的文檔,如學生成績單、獎狀、郵件件,信封等,少的話10行20行還可以複製粘貼,如果成百上千行,那就費勁了。
  • VBA代碼大全030:用vba強制關閉word應用程式
    我們有時候需要從word中提取數據到excel中。 這時候一般的套路都是在excel vba中創建word應用程式實例,然後一番操作以後關閉word應用程式。 這樣就會出現當再次運行這個代碼時,出現重新加載word應用程式時卡頓的情況,導致代碼長時間不響應。 這裡介紹一段代碼放在上面的結構的最後,可以強制的關閉任何存在的word.exe進程,從而掃清障礙。
  • 【郵件合併】不會VBA也能批量生成Word封面
    一行Excel信息生成一頁文檔。二、什麼是郵件合併?2、批量列印信件:主要是從電子表格中調用收件人,換一下稱呼,信件內容基本固定不變。3、批量列印請柬:同上2。4、批量列印工資條:從電子表格調用數據。5、批量列印個人簡歷:從電子表格中調用不同欄位數據,每人一頁,對應不同信息。6、批量列印學生成績單:從電子表格成績中取出個人信息,並設置評語欄位,編寫不同評語。
  • 怎樣用word和Excel批量列印獎狀
    在看《中小學信息技術教育》(2012第5期)的時候發現一篇名為「教你何利用Word批量列印證書」的文章,這使我想起有老師在給學生打獎狀的時候是多麼折騰
  • python批量生成合同
    ,複製粘貼是個很費勁的事,於是乎有了python自動化批量操作的這種神器.中設置替換關鍵字 首先得在word中指定需要替換的某些關鍵字,並加以特殊標註,如''【合同編號】'',加上括號以便程序識別和區分   2. excel中設置表頭與word中的關鍵字一一對應 excel中必須設置與合同文檔相對應的需要替換的列表名
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 利用模板批量生成文檔--成績單、工資條、合同
    」事情是這樣的,公司中每年都會存在人員崗級晉升的情況,此時需要對員工的檔案進行管理,更新崗級並放入晉升的證明,每份證明都有統一的格式進行填寫,籤名並蓋章。此時可以拿到的一份Excel表格和一份模板,需要將Excel表格中的信息拷貝到模板中,生成一份新的文檔,並列印成紙質文檔。
  • VBA實現批量生成條形碼
    >批量生成條形碼這裡只講解第三種方法:調用barcode控制項生成條形碼。上面說的生成二維碼的excel自帶控制項就是Microsoft BarCode控制項,利用插入控制項來做條形碼,每次只能生成一個。所以,我們用VBA代碼來實現批量生成條形碼。
  • 使用word郵件合併功能批量生成文件
    工作中在分發通知、工資單及各種文件時,通常要將excel表中的數據以固定的格式填入word中,然後再發送給對應的人,如給經銷商發年會邀請函,其中經銷商名單就需要填入word模板中,如果要邀請很多經銷商來參加年會,那麼一個一個的錄入效率會很低,使用word郵件合併功能就能快速解決這類問題
  • 手把手教你使用python的zipfile模塊巧解word批量生成問題
    回復「書籍」即可獲贈Python從入門到進階共10本電子書大家好,我是宿者朽命,微信名是【🌑(這是月亮的背面)】,今天給大家分享使用python的zipfile模塊巧解word批量生成問題,這裡提供兩種方案給大家參考。
  • Excel 必學秘籍 根據Excel數據填寫word模板,從而批量生成word文檔
    Excel 必學秘籍 根據Excel數據填寫word模板,從而批量生成word文檔最近在論壇上看見了Excel大神發布了一段神奇的VBa代碼,我把它展示給了彭師,彭師看後感覺非常的實用,我們一起來看看它到底能幫我們做什麼吧。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    帶你用pandas玩轉各種數據處理本系列一直強調要善用各種工具,作為本系列的最後一節,那麼這次就用一例子說明如何讓Python結合Vba,直接在Excel中動態獲取各種處理條件,輸出結果。日後也會不定期分享 pandas 的處理案例,但不一定非要與 Excel 掛鈎。比如直接結合 power bi 做處理分析。
  • excel數據批量導入到word表格中的方法
    如何將excel數據批量導入到word表格中?下文就是將excel數據批量導入到word表格中的教程,希望對你們有所幫助哦。  1、打開文字文檔以後,先做好表格,接著找到文檔中工具欄的「工具」按鈕。
  • Python辦公自動化 | 批量word報告生成工具
    有時候我們需要按照某種規則生成一種固定模板的word報告,python能夠很好的完成這項工作。
  • python操作excel:批量生成超連結
    excel設置超連結的函數是HYPERLINK,這裡用python批量生成超連結的思想其實很簡單,就是將公式寫入excel就行。
  • Python辦公自動化| word 表格轉excel
    之前寫過一篇 Python辦公自動化 | 批量word報告生成工具 ,有小夥伴提出了逆向需求,即:從批量word中獲取內容並寫入excel,需求背景是匯總一些材料,舉例:實習鑑定表、個人簡歷、檔案等。實際需求是這樣的,現在有如下格式的若干word文檔,需要錄入標黃信息到excel,手工錄入效率太低了,能不能用python實現呢?
  • Excel VBA從新手到高手系列課程
    二、   學時分配:全套課程分三部分內容,目前總共46個學時,2070分鐘。其中新手篇時長12小時39分;進階篇時長7小時46分;高手篇14小時04分;請大家注意安排學習計劃及合理分配學習時間。   教學由易到難,循序漸進,結合工作實例,易學易用。