2010-08-15 94 views
0

我對MS Office Word 2007文檔有一個簡單的要求。我需要宏的代碼,它複製一個Table(格式化的),並在每次運行此宏時粘貼它。Microsoft Word 2007複製表格宏

該場景如下: - 1.我將複製一個格式化的表(7-8行和5-6列等),並將其存儲在宏中作爲按鈕或快捷鍵。

1.無論何時我想要或在同一個單詞文檔中的任何特定位置,我會放置光標並單擊宏按鈕(運行我們的宏)。這個宏應該粘貼具有相同數量的行和列以及樣式的相同格式的表格。

2.我可以運行這個宏幾次,但它應該每次粘貼相同的表。

我希望代碼將在VB中。

我知道如何創建宏,分配按鈕,快捷鍵,安全性等。我只需要背後宏的VB代碼(或任何代碼),這可能是以上情況的解決方案。

對不起,但我已經讓我的要求非常清楚。

在此先感謝...乾杯!希爾帕絲綢

+0

看起來你之前問過這個問題。 http://stackoverflow.com/questions/3486324/copy-table-macro-for-ms-word-2007 試一試吧,當你遇到麻煩時問一個更具體的問題。 – buckbova 2010-08-15 18:34:50

+0

我試了一下,但沒有成功。我以爲我貼錯了標籤的問題,並沒有得到任何答覆。所以,回到這裏:)任何幫助將不勝感激! /Shilpa Silk – 2010-08-15 19:24:33

+0

您可以編輯自己的標籤 - 將其作爲http://stackoverflow.com/questions/3486324/copy-table-macro-for-ms-word-2007的完全副本關閉此標籤。但是,對於那種相當直接的評論 - 大多數人不會爲你編寫解決方案。馬吉德一直非常友善,竭盡全力爲你提供很多細節。你可能應該使用他給你的東西,並自己制定解決方案的其餘部分,並接受他的答案。 – 2010-08-15 23:00:27

回答

2

使用宏記錄器。調用記錄器,然後完成複製和粘貼表格的步驟,然後您可以對其進行編輯以查看宏的實際指令。但請注意,宏記錄器不保存剪貼板的內容,因此創建表的標記將不會與宏一起保存。爲了讓它工作,在運行宏之前表格應該存在。

這是一個可行的方法:

開始錄製下列條件應滿足之前:

  1. 你的表應該是在 開始文檔的 段落標記後
  2. 你的光標應該是 你想放置新的地方 表

然後打開記錄並完成以下步驟:

  1. _table_goes_here_類型,其中 光標是
  2. 按CTRL + HOME主表之前轉到文檔(年初剛剛
  3. 按住Shift並按down arrow鍵足夠多的時間,直到選中 整個表,
  4. 按Ctrl + C複製表
  5. 按Ctrl + F,彈出查找對話框
  6. 類型的佔位符文本查找內容框中(_table_goes_here_) ,點擊查找下一個
  7. 當你有你的佔位符文本中找到和選擇,按Esc 鍵關閉查找對話框
  8. 按Ctrl + V粘貼複製的表格,將替換您的 佔位符文本
  9. 結束宏錄製。

編輯 - 第二條本辦法
另一種方法是開始錄製宏,然後從頭開始創建表,這樣你就不會需要一個已經存在的表爲宏工作。當您對錶格結束記錄進行整形和格式化時,您已經捕獲了所有需要的步驟,以便將所需的表格放在任意位置。

我剛剛測試了第二種方法,它工作得很好。這裏是記錄器爲我的小測試生成的代碼:

Sub MakeTable() 
' 
' MakeTable Macro 
' Macro recorded þ16þ/08þ/2010 by Majid Fouladpour 
' 
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _ 
     4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ 
     wdAutoFitFixed 
    With Selection.Tables(1) 
     If .Style <> "Table Grid" Then 
      .Style = "Table Grid" 
     End If 
     .ApplyStyleHeadingRows = True 
     .ApplyStyleLastRow = True 
     .ApplyStyleFirstColumn = True 
     .ApplyStyleLastColumn = True 
    End With 
    With Selection.Tables(1) 
     .Style = "Table Columns 4" 
     .ApplyStyleHeadingRows = True 
     .ApplyStyleLastRow = True 
     .ApplyStyleFirstColumn = True 
     .ApplyStyleLastColumn = True 
    End With 
    Selection.TypeText Text:="Col one" 
    Selection.MoveRight Unit:=wdCharacter, Count:=1 
    Selection.TypeText Text:="Col two" 
    Selection.MoveRight Unit:=wdCharacter, Count:=1 
    Selection.TypeText Text:="Col three" 
    Selection.MoveRight Unit:=wdCharacter, Count:=1 
    Selection.TypeText Text:="Col four" 
    Selection.MoveDown Unit:=wdLine, Count:=1 
    Selection.MoveLeft Unit:=wdCharacter, Count:=3 
    Selection.TypeText Text:="Item 1" 
    Selection.MoveDown Unit:=wdLine, Count:=1 
    Selection.TypeText Text:="Item 2" 
    Selection.MoveDown Unit:=wdLine, Count:=1 
    Selection.TypeText Text:="Item 3" 
End Sub 
+0

嗨Majid! 感謝您回答這個問題,但我的要求非常不同。我不能將表格放在文檔的開頭,而是在某個特定的頁面中放置表格。是不是有一種方式讓宏應該記住表格並隨時隨地粘貼它。可以使用相同的宏將表格粘貼到其他文檔中。有(在新文檔中)我不能告訴任何人在文檔的開頭複製粘貼表格。不能宏存儲和保存表格和格式在其內存或類似的東西?我可以隨時在任何word文檔中重新使用它。 感謝您的幫助 – 2010-08-15 19:21:13

+0

宏將粘貼放置光標的表格,而不是在文檔的開頭。文檔開始處的表格僅用作模板。你也可以把它放在文檔的末尾,在這種情況下,而不是'Ctrl + Home',你需要做一個'Ctrl + End',然後向後移動以在錄製宏時選擇表格。我不知道任何方式來保存表格本身,但會編輯我的答案添加另一種方法。 – 2010-08-15 19:31:45

+0

您可以將該表存儲爲自動圖文集詞條(或Word 2007中的構建塊)。這樣它就會隨文檔一起保存,但在運行代碼插入之前不會出現在頁面上。 – e100 2010-08-16 08:55:55