Копирование, вставка и удаление слов с помощью VBA - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть текстовый документ с таблицами повсюду.У меня есть макрос, который я использую, чтобы скопировать значения из ячеек в определенных столбцах и вставить их в другие столбцы.Затем макрос удаляет несколько столбцов из таблицы.

Обычно я использую закладки для копирования и вставки.

Закладки - это все ячейки в определенном столбце, кроме заголовка.Так, например, закладка «Цели» будет охватывать от строки 2 столбца 2 таблицы 5 до конца столбца 2.Так что, если пользователь добавляет строку, это также будет включено в закладку.

Вот пример ниже:

If ActiveDocument.Bookmarks.Exists("ProposedOverallObj") = True Then
ActiveDocument.Bookmarks.Item("ProposedOverallObj").Select

Selection.Cut
Selection.GoTo What:=wdGoToBookmark, Name:="Objectives"
With ActiveDocument.Bookmarks
    .DefaultSorting = wdSortByName
    .ShowHidden = False
End With
Selection.PasteAndFormat (wdPasteDefault)
End If

 Dim Table1 As Table
Set Table1 = ThisDocument.Tables(5)


If Table1.Columns.Count >= 5 Then
    With Table1
        .Columns(5).Delete
        .Columns(4).Delete
        .Columns(3).Delete
    End With
Else
    MsgBox "Not enough columns!"
End If

, и это продолжается примерно для 13 таблиц.Первые несколько таблиц работают нормально, затем я начинаю сталкиваться со странной ошибкой, когда случайно строка текста над моей таблицей копируется в заголовок таблицы, а затем мой код «удалить столбцы» обрывается и сообщает, что один из столбцов уже былудален.(это не так).

Error Message Object Has Been Deleted

Есть ли лучший способ сделать это?Может ли это происходить, потому что я использую .Select?Я знаю, это может быть отрывочно.Было бы лучше назначить идентификаторы моим диапазонам столбцов, чем использовать закладки и выбрать?если да, не могли бы вы предоставить мне небольшой пример кода для использования Dim для диапазона в таблице (мой диапазон всегда начинается с строки 2 и идет до конца столбца)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...