У меня есть текстовый документ с таблицами повсюду.У меня есть макрос, который я использую, чтобы скопировать значения из ячеек в определенных столбцах и вставить их в другие столбцы.Затем макрос удаляет несколько столбцов из таблицы.
Обычно я использую закладки для копирования и вставки.
Закладки - это все ячейки в определенном столбце, кроме заголовка.Так, например, закладка «Цели» будет охватывать от строки 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 таблиц.Первые несколько таблиц работают нормально, затем я начинаю сталкиваться со странной ошибкой, когда случайно строка текста над моей таблицей копируется в заголовок таблицы, а затем мой код «удалить столбцы» обрывается и сообщает, что один из столбцов уже былудален.(это не так).
Есть ли лучший способ сделать это?Может ли это происходить, потому что я использую .Select?Я знаю, это может быть отрывочно.Было бы лучше назначить идентификаторы моим диапазонам столбцов, чем использовать закладки и выбрать?если да, не могли бы вы предоставить мне небольшой пример кода для использования Dim для диапазона в таблице (мой диапазон всегда начинается с строки 2 и идет до конца столбца)?