隨筆-1  評論-44  文章-3  trackbacks-0
          ?????????很多人都知道,用vb操作excel的表格非常簡單,但是偏偏項目中碰到了VB操作word表格的部分,google、baidu搜爆了,都沒有找到我需要的東西。到是搜索到了很多問這個問題的記錄。沒辦法,索性只有自己去嘗試了。下面把一些代碼發上來,給需要的朋友一點提示
          ?????????打開一個已經存在的wrod文件(這個文件包含了表格)
          Dim?WordApp
          Dim?Word
          Set?WordApp?=?CreateObject("Word.Application")
          WordApp.Visible?
          =?True
          Set?Word?=?WordApp.Documents.Open("c:\record.dot")
          ?????????知道了就很簡單了,下面是選定某一個表格的一個單元格,并修改其內容
          Word.Tables(1).cell(1,?2)="內容"
          ?????????VBA中的這些數組元素下標都是從1開始的,比如excel的第一行一列也是ExSheet.Cells(1,1),而不是ExSheet.Cells(0,0),WORD的表格也是這樣,不信自己試一下就知道了。所以上面那句話的意思就是對整個word文檔中的第一個表格的第一行第二列的內容改變為“內容”。很簡單吧?網上有些人在問是不是
          Word.Tables(1).cell(1,?2
          ).range.text或者Word.Tables(1).cell(1,?2).text。試一下就發現這2種都不對
          ?????????插入圖片其實也很簡單,代碼如下:

          Word.Tables(1).cell(1,?3).Range.InlineShapes.AddPicture?("c:\photo.jpg")
          ?????????微軟的那一套東西集成得很不錯,其之間任意調用非常方便,大家如果想用VB對WORD做更多的應用,卻又不知道怎么實現,我想最好的辦法就是錄制宏了,你把你想完成的功能操作一遍,然后查看宏,一目了然了吧?呵呵。。。(完)
          posted on 2006-08-14 17:20 黑旋風 閱讀(27383) 評論(37)  編輯  收藏

          評論:
          # re: VB程序操作word表格(文字、圖片) 2006-08-15 18:17 | 風谷路人
          不錯哦~我問過這個問題的:)  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-18 12:38 | 風谷路人
          Dim WordApp
          Dim Word
          Set WordApp = CreateObject("Word.Application")
          WordApp.Visible = True
          Set Word = WordApp.Documents.Open("c:\record.doc")

          這樣是打開一個已經存在的.doc文件。如果想新建一個.doc文件喃?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-23 10:33 | jxally
          高手你好!我在vb中調用word打印報表,代碼是在word中錄制的宏拷貝過來的,但是在生成表格時編譯通不過,代碼如下:

          Dim wdApp As Word.Application
          Dim wdBook As Word.Document
          Dim Range As Range
          Dim NumRows As Long
          Dim NumColumns As Long
          Set wdApp = CreateObject("Word.Application")
          Set wdBook = wdApp.Documents.Add
          wdApp.Visible = True
          ....
          ....
          --〉wdApp.ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=16, NumColumns _
          :=5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
          wdAutoFitWindow
          運行時上面這句報實時錯誤'91'
          對象變量或with塊變量未設置
          該如何寫?請高手指教,非常感謝!  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-23 13:44 | 黑旋風
          看你的代碼是想增加一個表格,VBA的代碼和VB的代碼是不一樣的,需要轉換一下,多用幾次就清楚了。
          應該這樣寫
          Call wdBook.Tables.Add(wdBook.application.Selection.Range, 16, 5, 1, 0)  回復  更多評論
            
          # 感謝指教!還有一個問題請教 2006-08-25 10:30 | jxally
          謝謝指教,還有一個問題要請教高手。如果我要增加一個復雜的表格,舉例說就是在表格中我要合并、拆分一些單元格,還要繪制表頭(帶斜線的),但是在word中錄制宏時無法對表格進行這些操作,我該怎么辦?能不能給出一些代碼?非常感謝!  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-26 11:26 | 黑旋風
          接著上次那個程序來。。。
          Set mySelection = wdApp.Documents.Application.Selection
          mySelection.Cells.Borders(-7).LineStyle = 1

          '選中表格的第2行第3列
          table.Cell(2, 3).Select
          '向下移動6格,第1個參數和第3個是常數
          Call wdBook.Application.Selection.MoveDown(5, 6, 1)
          '合并
          wdBook.Application.Selection.Cells.Merge
          '拆分成7行2列
          Call wdBook.Application.Selection.Cells.Split(7, 2, True)  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-29 00:22 | 歐洲黑胖子
          兄弟我也找了3天啦,終于找到組織了,樓主高,實在是高,繼續揣摩并關注此貼中。。。  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-29 08:32 | jxally
          謝謝!樓主真高,兄弟佩服,非常感謝!我馬上去試試。
            回復  更多評論
            
          # 非常感謝!還得繼續麻煩樓主指教 2006-08-29 09:39 | jxally
          樓主你好!我按你的方法去做,但是在執行table.cell(2,3).select時報錯,錯誤為實時錯誤'424',要求對象,我不知道是不是在table前需要加上wdapp還是wdbook,或者是myselection,不過我都試過了,還是不行,后面的就寫不下去了。我主要是想生成一個7列27行的表格,第1列的1、2兩行合并為一個單元格,第1列的第5行和第6行合并做一個帶斜線的表頭,斜線上下要分別輸入“壓力計”和“測試點”作為表頭分類,第4行的第2、3、4列單元格合并為一個單元格,5、6、7列合并為一個單元格,望樓主能詳細寫一下代碼。非常感謝!我的代碼如下:
          Dim wdApp As Word.Application
          Dim wdBook As Word.Document
          Set wdApp = CreateObject("Word.Application")
          Set wdBook = wdApp.Documents.Add
          wdApp.Visible = True

          wdApp.Selection.Font.Name = "黑體"
          wdApp.Selection.Font.Size = 22
          wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
          wdApp.Selection.TypeText Text:="通風機調試報告"
          wdApp.Selection.TypeParagraph
          wdApp.Selection.TypeParagraph
          wdApp.Selection.Font.Name = "仿宋_GB2312"
          wdApp.Selection.Font.Size = 12
          Call wdApp.ActiveDocument.Tables.Add(wdApp.Application.Selection.Range, NumRows:=27, NumColumns _
          :=7, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
          wdAutoFitFixed)
          Set mySelection = wdApp.Documents.Application.Selection
          mySelection.Cells.Borders(-7).LineStyle = 1

          '選中表格的第2行第3列
          --> Table.Cell(2, 3).Select
          '向下移動6格,第1個參數和第3個是常數
          Call wdBook.Application.Selection.MoveDown(5, 6, 1)
          '合并
          wdBook.Application.Selection.Cells.Merge
          '拆分成7行2列
          Call wdBook.Application.Selection.Cells.Split(7, 2, True)
          Set wdBook = Nothing


            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-29 15:44 | 黑旋風
          不好意思啊,上次在自己機器上測試了一下,沒有拷全部代碼,不過就這個應該也能理解到呀,table就是要操作的那個table,一個word里面有可能有多個table,我們首先要選中要操作的那個table,我們這個table是自己用代碼生成的,所以有一個方便的代碼就是
          dim Table
          set Table = wdApp.ActiveDocument.Tables.Add(wdApp.Application.Selection.Range, NumRows:=27, NumColumns _
          :=7, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
          wdAutoFitFixed)

          修改你的程序里面插入table的那句話即可
          ---------------------------------------------
          謝謝關注風之谷,下次多寫一些關于這方面的東西,網上這方面的其實東西不少,但是不全,下次整理一下發上來,不過最近怕是沒什么時間了,呵呵!
            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-08-29 16:00 | 黑旋風
          順便提一下,像你這樣的程序,我個人覺得是否改成模板要方便些呢?你用word做一個模板,把表格什么的全都先寫好,然后保存成模板文件。然后你再用程序加載這個模板,然后往模板里填寫數據。這樣難度要低一些。不過具體情況具體分析。(個人意見)

          之前我不是說了如果是自己創建的表格可以很方便的得到表格對象嗎?就在創建時直接取得了。其實還有另外一種辦法就是:你的其他程序都不變,只把出錯的那句話改成:
          wdApp.ActiveDocument.Tables(1).Cell(2, 3).Select
          就像我開篇說的,word、excel這些集合的下標都是從1開始,然后只要找到表格那個集合,然后選取第一個表格就是要操作的表格了(因為程序只創建了一個表格)。
          如果是模板的話,就應該是對已經存在的表格進行操作了,就只有用這中辦法弄了。不知道我說清楚沒有。
            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-09-08 09:44 | jxally
          多謝了!我按照你的建議,已經完全搞定了,還是做成模版調用來得方便,非常感謝你的指點。  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-10-19 15:55 | 廉潔
          樓主:

          有一個問題請教!

          我想通過vb在word里添加多個表格,因為數據的列數較多,希望能

          分成多個表格顯示數據,方便查看。

          部分代碼如下:

          For I = 1 To INT_COL
          Call MyWord.ActiveDocument.Tables.Add(MyWord.Application.Selection.Range, NumRows:=30, _
          NumColumns:=8, DefaultTableBehavior:=wdWord9TableBehavior, _
          AutoFitBehavior:=wdAutoFitFixed)
          With MyWord.Application.Selection.Tables(1)
          If .Style <> "網格型" Then
          .Style = "網格型"
          End If
          .ApplyStyleHeadingRows = True
          .ApplyStyleLastRow = True
          .ApplyStyleFirstColumn = True
          .ApplyStyleLastColumn = True
          End With
          MyWord.Application.Selection.MoveDown Unit:=wdLine,Count:=30
          MyWord.Application.Selection.TypeParagraph
          Next I

          但是,每次程序執行到MyWord.Application.Selection.MoveDown Unit:=wdLine,Count:=30這一句,就跳出程序。為什么?

          另:您有什么好的建議,處理這種多行多列數據嗎?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-10-19 15:56 | 廉潔
          事情有點急,盼望樓主答復  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-10-19 16:57 | 廉潔
          程序修改如下,可以出現多個表格,但是在給每一個表格輸入數據時,我就不知道怎么處理了,盼回復

          For I = 1 To INT_COL
          Call MyWord.ActiveDocument.Tables.Add(MyWord.Selection.Range, NumRows:=30, _
          NumColumns:=8, DefaultTableBehavior:=wdWord9TableBehavior, _
          AutoFitBehavior:=wdAutoFitFixed)
          MyWord.Selection.Tables(1).cell(1, 1) = "Year"
          Call MyWord.Selection.MoveDown(5, 30)
          MyWord.Selection.TypeParagraph
          Next I  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-10-22 00:53 | 黑旋風
          你的代碼基本上都差不多了,我沒測試,看樣子是你的思路有點問題(循環不對)

          你可以先生成1個表格,再處理表格的數據。
          也可以把所有表格全部生成,再處理表格數據,
          看你的代碼,你選擇的是第2種,不管是哪種,肯定是多重循環的,你的代碼只有1重循環。
          思路如下:
          for 表格數
          生成這個表格,得到表格對象
          for 表格的行
          for 表格行的單元格
          單元格="單元格的內容"
          next
          next
          next
          呵呵,不知道說清楚沒有  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-10-23 17:44 | 廉潔
          謝謝斑竹,搞定!

          我的問題并非上述原因,是我沒有把光標移出表格。

          問題已經解決,謝謝  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-12-15 09:40 | 蘇寧
          請高手回答一下,怎么用VBA發現WORD中的合并單元格?
          怎么跟椐一個字符串查找到相應的單元格?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2006-12-20 20:46 | SUNJIE
          樓主實在是高,看過樓主的帖子解決了不少問題。但是還有一個不會,就是怎樣將在VB picture中生成的圖片導入WORD中呢??  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2007-02-05 10:17 | 落雁lilac
          樓主實在是高
          有個問題一直很奇怪,怎么把光標移到文檔末尾,比如我要把剪切板上的東西復制到文件尾。我寫的是
          ActiveDocument.Range(ActiveDocument.End,ActiveDocument.End).Select
          Selection.Paste
          這樣是不對的
          請教摟主  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2007-02-05 16:27 | 落雁lilac
          哇哈哈
          半天的試驗,問題已解決
          有空大家可以到我的空間看看
          有不少平時我積累的有關編程方面的心得  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2007-07-01 01:08 | liguang
          如何用vb在word 中生成多個表格,尤其是在很多時 涉及到換頁的操作時,
          大家各我看看,我的郵箱是999999999liguang@.163.com qq:26749732
          下面是我的代碼 :
          For n = 1 To 6
          ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=10+n, NumColumns:= _
          6, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
          wdAutoFitFixed


          With wdDoc.Tables(n)
          .Cell(1, 1).Merge .Cell(1, 6)
          End With



          With Selection.Tables(1)
          If .Style <> "網格型" Then
          .Style = "網格型"
          End If
          .ApplyStyleHeadingRows = True
          .ApplyStyleLastRow = True
          .ApplyStyleFirstColumn = True
          .ApplyStyleLastColumn = True
          End With
          ActiveWindow.ActivePane.VerticalPercentScrolled = 45
          Selection.MoveDown Unit:=wdLine, Count:=10+n + 1

          Selection.TypeParagraph
          Next n
            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片)[未登錄] 2008-01-30 08:50 | 新手
          @廉潔
          請問高手廉潔,怎樣才能把光標移出表格。期盼。  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片)[未登錄] 2008-01-30 09:06 | 新手
          請問高手廉潔,怎樣才能把光標移出表格。期盼。  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2008-04-06 19:31 | 新手入伙
          請教樓主
          怎樣將excel單元格的內容轉化到設定好的word表格模板中去?多謝!

            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2008-04-29 17:41 | 問路人
          樓主。我現在每次插表格都是在word文檔起始位置開始。插入表格之后我想在后面接文字,請問樓主用什么語句控制光標到最后一位啊
          例如:
          樓主,你好
          第 1單元格 第 2單元格 第 3單元格 第 4單元格
          你好,樓主



            回復  更多評論
            
          #  VB程序識別word合并及拆分單元格 2008-08-12 17:00 | 我不懂
          斑竹,請問word中的合并單元格和拆分單元格如何判定,也就是它們的特征或標志是什么?急!急!急!急!急!急!急!  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2010-07-09 09:18 | phcah@163.com
          請教,VBA里如何判斷 某一段或幾段用了哪個 項目符號 用什么屬性,查了很多資料都是講怎么設置項目符號的,沒有檢測的。謝謝。  回復  更多評論
            
          # 求教:如何將word文檔的內容copy到Excel 中 2011-01-03 22:57 | EricPu
          本人正在學習用VBA在Excel中編程處理數據,我想把word文檔中的內容copy到excel中進行處理。逐行copy或一次性全部拷入均可。我已經可以打開word文檔了,但接下來就不知如何進行了。請那位有經驗的高人知道一下。
          Dim docApp 'As Word.Application
          Set docApp = CreateObject("Word.Application")
          docApp.Visible = False
          Dim doc 'As Word.Document

          Set doc = docApp.Documents.Open("D:\MyDocuments\報告數據\WorkingVersion\foo.doc")

          多謝了!
            回復  更多評論
            
          # re: VB程序操作word---求指教,多謝! 2011-11-05 22:09 | 我愛小腳丫
          這個vb6.0代碼不能實現指定頁打印,不論怎樣設置 Copies:和Pages都和沒有一樣,錯在哪里,請指教!
          Private Sub Command1_Click()

          Dim WordApp

          Dim Word Set WordApp = CreateObject("Word.Application")

          'WordApp.Visible = True

          Set Word = WordApp.Documents.Open("d:\abc.doc")

          WordApp.Application.PrintOut Copies:=1, Pages:="1,5"

          Word.Close

          WordApp.Quit

          Set WordApp = Nothing

          Set Word = Nothing

          End Sub
            回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2012-04-12 22:11 | qytom
          我想設定圖片的大小,要如何做?用上述方法(.AddPicture)會用圖片原始大小來顯示,我想要自己規定的大小來顯示。  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2012-04-15 19:45 | sunrain
          如何用vb操作word表格中單元格中字體格式為上下居中?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2012-06-01 14:30 | zqw
          怎樣用vb復制word表格?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2012-06-12 12:04 | 小骰子
          設置某個文字為下標怎么設呢?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2013-03-14 16:31 | 110259413@qq.com
          整行 怎么選 寫代碼 我想拆分 整行 把整行才分 2行 3行 4行 怎么寫  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2014-01-01 10:49 | 千真萬確
          請問如何將word中的圖片讀取到一個變量中,或保存到磁盤的一個目錄中?  回復  更多評論
            
          # re: VB程序操作word表格(文字、圖片) 2014-04-01 10:20 | ganzi
          合并之后怎么對合并后的單元格賦值呢@黑旋風
            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 修水县| 元阳县| 故城县| 柘城县| 泸水县| 公主岭市| 泾川县| 福安市| 皮山县| 隆回县| 和政县| 承德县| 灵石县| 阿鲁科尔沁旗| 饶河县| 尉犁县| 扶风县| 华容县| 常州市| 台南市| 密云县| 称多县| 海南省| 德江县| 芜湖县| 比如县| 涪陵区| 涡阳县| 镇康县| 青州市| 白朗县| 山东| 十堰市| 治多县| 牙克石市| 内江市| 家居| 巴彦县| 潜山县| 兰西县| 牡丹江市|