Конфликт имен при авт. переносе информации из файла в файл

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

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

Ответить
Circus
Сообщения: 8
Зарегистрирован: 06 сен 2004, 19:52
Контактная информация:

При переносе методом
sheet_out.Range("a1:b1").Copy Destination:=sheet_in.Range("a1:b1")
инфы из файла в файл эксель утомил вопросом про конфликт имен. Нужно корректно (вместе с именами, формулами и связями) перенести нужную инф. Таких файлов - порядка 30, терять время по 5 мин на штуку, тупо нажимая на ввод очень не хочется, тем более так надо будет делать раза по 4 в неделю.

Подскажите непрограммисту, как блокировать реакцию экселя?

Заранее спасибо.
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Если Вам достаточно всего лишь убрать большинство системных предупреждений, то возможно этот код сможет быть Вам полезен :

Application.DisplayAlerts = False
Rem Здесь Ваш код ...
Application.DisplayAlerts = False
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Так, на всякий случай:

Если важны, например, только данные (ну вдруг) а внешний вид ячеек не важен, то копирование через буфер можно заменить элементарным присвоением:

sheet_in.Range("a1:b1").Value = sheet_out.Range("a1:b1").Value
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Ну если надо обойтись без копирования, но сохранив при этом параметры форматирования, формулы и т.п., то можно использовать что-то типа этого :

Worksheets(Array("Лист1", "Лист2")).FillAcrossSheets Worksheets("Лист1").Range("A1:B1")
Worksheets(Array("Лист1", "Лист2")).FillAcrossSheets Worksheets("Лист1").Range("A1:B1"), xlFillWithAll

Примечание :
Сразу оговорюсь, что перенос осуществляется только из диапазона "A1:B1" в диапазон "A1:B1" другого рабочего листа(ов)
Ответить