Вернуть Excel листам первозданный вид макросом

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

vadim245
Сообщения: 100
Зарегистрирован: 11 май 2007, 15:46

Супер! Уже не очень или совсем не принципиальный вопрос, точнее 2 проблемы, с которыми таки столкнулся в процессе сборки пользовательских книг макросом:

1. В листах есть кое-где меню выбора значений, выполненные через поименованный диапазон. Макрос наталкивается при копировании на одинаковые имена и справшивает. Приходится почти в каждом случае жать кнопку Yes.

2. Редкость, но бывает - пользователи для своих нужд делают сводные таблицы (нафиг не нужны нам) на отдельных листах и забывают удалять. Разумеется копирование валится с ошибкой (IMHO копирование которое делается для вставки значений на листы просто не отрабатывает)
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

1) Если речь идёт о наличии выпадающих списков, созданных с помощью об'екта Validation (меню Данные - Проверка - Параметры - Тип данных: Список - Источник: Имя), то, для начала, можно попробовать добавить следующее :

Код: Выделить всё

With .UsedRange
      .Validation.Delete
        ...
       
End With
Если же сие не поможет, точнее сказать, если Вы говорите не о об'екте Validation, то использовать :

Код: Выделить всё

Application.DisplayAlerts = False
и

Код: Выделить всё

Application.DisplayAlerts = True
2) Что касается сводных таблиц, то ошибка, скорее всего, возникает не при копировании, а при выполнении присвоения, т.е. .Value = .Value а в этом случае, данную строку можно заменить на .Copy: .PasteSpecial xlValues

Впрочем, опять возникает вопрос, если сводные таблицы нафиг нам не нужны, то зачем мы собираемся их копировать ? ведь если сводные таблицы расположены на отдельных листах, то почему бы нам просто не игнорировать эти листы ...
Ответить