2010-08-15 3 views
0

У меня есть простое требование в документе MS Office Word 2007. Мне нужен код за макросом, который копирует таблицу (отформатированную) и вставляет ее каждый раз, когда я запускаю этот макрос.Скопируйте макрос таблицы для Microsoft Word 2007

Сценарий выглядит следующим образом: - 1. Я скопирую форматированную таблицу (с 7-8 строками и 5-6 столбцами и т. Д.) И сохранит ее в макросе как кнопку или комбинацию клавиш.

1. Когда я хочу или в каком-либо конкретном месте в документе того же слова, я поместил курсор и нажал кнопку макроса (запустите наш макрос). Этот макрос должен вставить одну и ту же форматированную таблицу с таким же количеством строк, столбцов и стиля.

2.I можно запустить этот макрос несколько раз, но он должен вставлять одну и ту же таблицу каждый раз.

Надеюсь, код будет в VB.

Я знаю, как создать макрос, назначить кнопку, клавишу быстрого доступа, безопасность и т. Д. Мне нужен только код VB (или любой код) за макросом, который может быть решением для вышеупомянутого сценария.

Извините за длинный пост, но я сделал свое требование довольно ясным.

Спасибо заранее ... Приветствия! Shilpa Silk

+0

Похоже, вы задали этот вопрос раньше. http://stackoverflow.com/questions/3486324/copy-table-macro-for-ms-word-2007 Попробуйте сами, и когда вы столкнетесь с проблемой, задайте более конкретный вопрос. – buckbova

+0

Я попробовал, но не увенчался успехом. Я думал, что я разместил вопрос в неправильных тегах и не получил никакого ответа. Итак, опубликовано здесь :) Любая помощь будет оценена! /Shilpa Silk –

+0

Вы можете редактировать свои собственные теги - перемещение, чтобы закрыть это, как точный дубликат http://stackoverflow.com/questions/3486324/copy-table-macro-for-ms-word-2007. Но есть комментарий к тому, который довольно прямой - большинство людей не собираются кодировать решение для вас. Маджид был достаточно любезен, чтобы уйти с дороги, чтобы предоставить вам множество подробностей. Вероятно, вам следует использовать то, что он вам дал, и самостоятельно решить остальную часть решения и принять его ответ. –

ответ

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. Завершение записи макроса.

Edit - Второй подход
Другой подход, чтобы начать запись макроса, а затем создать таблицу с нуля, таким образом вам не нужно предварительно существующую таблицу для макросов для работы. Когда вы сформировали и отформатировали запись на конце стола, и вы сделали все необходимые шаги, чтобы разместить ту же самую таблицу, где хотите.

Я только что проверил второй подход, и он работает отлично. Вот код, созданный магнитофоном для моего небольшого теста:

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

Привет, Маджид! Спасибо, что ответили на вопрос, но мое требование совсем другое. Я не могу разместить таблицу в начале документа, вместо этого у меня будет таблица на определенной странице. Разве это не так, что макрос должен помнить таблицу и вставлять ее где угодно и когда мне нужно. Тот же макрос можно использовать для вставки таблицы в другие документы. Там (в новом документе) я не могу сказать кому-либо, чтобы скопировать таблицу в начале документа. Не удается сохранить макрос и сохранить таблицу и формат в ее памяти или что-то в этом роде? Я могу повторно использовать его в любое время в любом текстовом документе. Спасибо за помощь ур –

+0

Макрос вставляет таблицу, в которую вы помещаете курсор, а не в начало документа. Таблица в начале документа действует только как шаблон. Вы также можете поместить его в конце документа, в этом случае вместо «Ctrl + Home» вам нужно будет сделать «Ctrl + End», а затем переместить назад, чтобы выбрать таблицу во время записи макроса. Я не знаю, как сохранить таблицу в самом макросе, но отредактирую мой ответ, чтобы добавить другой подход. –

+0

Вы можете сохранить таблицу как запись в AutoText (или Building Blocks в Word 2007). Таким образом, он сохраняется вместе с документом, но не отображается на странице, пока вы не запустите код для его вставки. – e100