Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование шаблона - ограничение 56 листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование шаблона - ограничение 56 листов (Макросы/Sub)
Копирование шаблона - ограничение 56 листов
Digger23 Дата: Понедельник, 22.09.2014, 21:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Доброго времени суток уважаемые экселисты.
В книге 2 листа: лист с данными (до 1000 строк) и шаблон. Нужно создать листы с именами из столбца А листа данных, копируя на эти листы шаблон. При этом в шаблоне в ячейку А1 устанавливать значение равное названию создаваемого листа. Так же созданный лист нужно сохранить в текст с табуляцией. Т.е. кол-во строк в листе с данными = кол-ву .txt файлов и = кол-во добавленных листов.
На основе макросов, найденых на этом форуме, составил под это дело свой. Работает, но некорректно. Кол-во созданных листов получается 56 и не больше, первые 55 листов создаются праильно, а затем сразу идет последний лист. При этом кол-во файлов правильное, но начиная с 57го файла и до конца повторяются данные из 56го.
Долблюсь второй день, и кажется, что в открытую дверь.
Помогите пожалуйста разобраться где тут собака порылась.
Файл как не крутил, но меньше 120Kb никак не выходит, поэтому не прикладываю. Вот макрос:
[vba]
Код
Sub Macros4()
Application.ScreenUpdating = False
Dim i As Long
Dim p_ As String
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row
     On Error Resume Next
     Sheets(Sheets("Vars").Range("A" & i).Value).Select
     If Err And Sheets("Vars").Range("A" & i) <> "" Then
         Sheets("Шаблон").Cells(1, 1).Value = Sheets("Vars").Range("A" & i).Value 'дата в шаблон
         Sheets("Шаблон").copy After:=Sheets(Sheets.Count)
         ActiveSheet.name = Sheets("Vars").Range("A" & i)
         p_ = "C:\Users\23Digger\Desktop\TEST\" & ActiveSheet.name & ".txt"
         ActiveWorkbook.SaveAs Filename:=p_, FileFormat:=xlText, CreateBackup:=False
     End If
Next i
Worksheets("Vars").Activate
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST.xls", FileFormat:=xlNormal, CreateBackup:=False
Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
СообщениеДоброго времени суток уважаемые экселисты.
В книге 2 листа: лист с данными (до 1000 строк) и шаблон. Нужно создать листы с именами из столбца А листа данных, копируя на эти листы шаблон. При этом в шаблоне в ячейку А1 устанавливать значение равное названию создаваемого листа. Так же созданный лист нужно сохранить в текст с табуляцией. Т.е. кол-во строк в листе с данными = кол-ву .txt файлов и = кол-во добавленных листов.
На основе макросов, найденых на этом форуме, составил под это дело свой. Работает, но некорректно. Кол-во созданных листов получается 56 и не больше, первые 55 листов создаются праильно, а затем сразу идет последний лист. При этом кол-во файлов правильное, но начиная с 57го файла и до конца повторяются данные из 56го.
Долблюсь второй день, и кажется, что в открытую дверь.
Помогите пожалуйста разобраться где тут собака порылась.
Файл как не крутил, но меньше 120Kb никак не выходит, поэтому не прикладываю. Вот макрос:
[vba]
Код
Sub Macros4()
Application.ScreenUpdating = False
Dim i As Long
Dim p_ As String
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row
     On Error Resume Next
     Sheets(Sheets("Vars").Range("A" & i).Value).Select
     If Err And Sheets("Vars").Range("A" & i) <> "" Then
         Sheets("Шаблон").Cells(1, 1).Value = Sheets("Vars").Range("A" & i).Value 'дата в шаблон
         Sheets("Шаблон").copy After:=Sheets(Sheets.Count)
         ActiveSheet.name = Sheets("Vars").Range("A" & i)
         p_ = "C:\Users\23Digger\Desktop\TEST\" & ActiveSheet.name & ".txt"
         ActiveWorkbook.SaveAs Filename:=p_, FileFormat:=xlText, CreateBackup:=False
     End If
Next i
Worksheets("Vars").Activate
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST.xls", FileFormat:=xlNormal, CreateBackup:=False
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Digger23
Дата добавления - 22.09.2014 в 21:34
alex1248 Дата: Понедельник, 22.09.2014, 22:35 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
Кол-во созданных листов получается 56 и не больше, первые 55 листов создаются праильно, а затем сразу идет последний лист. При этом кол-во файлов правильное, но начиная с 57го файла и до конца повторяются данные из 56го.

Погуглил немного. Оказывается, это распространенная проблема. Формально количество листов ограничено возможностями компьютера. Но проблемы после 50 листов возникают довольно часто.
Может быть, есть смысл изменить принцип организации информации? Если нельзя объединить информацию на разных листах (хотя наверняка есть варианты), то, например, распределять в несколько новых книг?


skype alex12481632
Qiwi +79276708519
 
Ответить
Сообщение
Кол-во созданных листов получается 56 и не больше, первые 55 листов создаются праильно, а затем сразу идет последний лист. При этом кол-во файлов правильное, но начиная с 57го файла и до конца повторяются данные из 56го.

Погуглил немного. Оказывается, это распространенная проблема. Формально количество листов ограничено возможностями компьютера. Но проблемы после 50 листов возникают довольно часто.
Может быть, есть смысл изменить принцип организации информации? Если нельзя объединить информацию на разных листах (хотя наверняка есть варианты), то, например, распределять в несколько новых книг?

Автор - alex1248
Дата добавления - 22.09.2014 в 22:35
Digger23 Дата: Понедельник, 22.09.2014, 22:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Распределять выходные данные - это вариант, спасибо за совет. Если не добью, придётся. Всё же хочется понять причину, ведь используя добавление листов [vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.name = Sheets("Vars").Range("A" & i)
[/vba], кол-во листов нужное и названия верные, но при этом у меня не получается прикрутить копирование шаблона в лист и выгрузку в текст. Это именно копирование вызывает такую проблему? Если копирование, то можно ли, используя Add, огранизовать требуемое?
 
Ответить
СообщениеРаспределять выходные данные - это вариант, спасибо за совет. Если не добью, придётся. Всё же хочется понять причину, ведь используя добавление листов [vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.name = Sheets("Vars").Range("A" & i)
[/vba], кол-во листов нужное и названия верные, но при этом у меня не получается прикрутить копирование шаблона в лист и выгрузку в текст. Это именно копирование вызывает такую проблему? Если копирование, то можно ли, используя Add, огранизовать требуемое?

Автор - Digger23
Дата добавления - 22.09.2014 в 22:56
wild_pig Дата: Понедельник, 22.09.2014, 23:06 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
но меньше 120Kb никак не выходит

Есть архиваторы ну или файлообменник.
 
Ответить
Сообщение
но меньше 120Kb никак не выходит

Есть архиваторы ну или файлообменник.

Автор - wild_pig
Дата добавления - 22.09.2014 в 23:06
alex1248 Дата: Понедельник, 22.09.2014, 23:12 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
при этом у меня не получается прикрутить копирование шаблона в лист и выгрузку в текст. Это именно копирование вызывает такую проблему?

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


skype alex12481632
Qiwi +79276708519
 
Ответить
Сообщение
при этом у меня не получается прикрутить копирование шаблона в лист и выгрузку в текст. Это именно копирование вызывает такую проблему?

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

Автор - alex1248
Дата добавления - 22.09.2014 в 23:12
Digger23 Дата: Понедельник, 22.09.2014, 23:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Насчет архиватора это да. Лицорука. Заработался.
А проблему вызывает похоже все же не само создание листов, в приложенном файле Add создает все листы, а вот Copy как я описал в первом посте. Или это код у меня кривой?.
К сообщению приложен файл: TEST.7z (28.4 Kb)
 
Ответить
СообщениеНасчет архиватора это да. Лицорука. Заработался.
А проблему вызывает похоже все же не само создание листов, в приложенном файле Add создает все листы, а вот Copy как я описал в первом посте. Или это код у меня кривой?.

Автор - Digger23
Дата добавления - 22.09.2014 в 23:57
wild_pig Дата: Вторник, 23.09.2014, 01:04 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
А для чего 1000 листов с датой?
 
Ответить
СообщениеА для чего 1000 листов с датой?

Автор - wild_pig
Дата добавления - 23.09.2014 в 01:04
wild_pig Дата: Вторник, 23.09.2014, 01:14 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
i5-3570K 3.4 GHz, 8Gb RAM - 42,5 секунды, но зачем это надо?
 
Ответить
Сообщениеi5-3570K 3.4 GHz, 8Gb RAM - 42,5 секунды, но зачем это надо?

Автор - wild_pig
Дата добавления - 23.09.2014 в 01:14
Digger23 Дата: Вторник, 23.09.2014, 01:29 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Там не обязательно дата, под рукой файл был, копирнул столбец и всё. Не из-за даты же такое получается? Если из-за даты - можно подставить все что угодно. Тип данных в ячейках влияет на результат?
Минута - разве это время :) .


Сообщение отредактировал Digger23 - Вторник, 23.09.2014, 01:38
 
Ответить
СообщениеТам не обязательно дата, под рукой файл был, копирнул столбец и всё. Не из-за даты же такое получается? Если из-за даты - можно подставить все что угодно. Тип данных в ячейках влияет на результат?
Минута - разве это время :) .

Автор - Digger23
Дата добавления - 23.09.2014 в 01:29
wild_pig Дата: Вторник, 23.09.2014, 02:03 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Я ни чего, кроме пути не менял, просто надо переждать зависания.
 
Ответить
СообщениеЯ ни чего, кроме пути не менял, просто надо переждать зависания.

Автор - wild_pig
Дата добавления - 23.09.2014 в 02:03
Digger23 Дата: Вторник, 23.09.2014, 02:27 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Всмысле у вас работает как надо? И листы все (не 56), и в файлах нужные данные? А зависания да, пережидал конечно, кнопку нажал и пока не выполниться - ничего не трогал.
 
Ответить
СообщениеВсмысле у вас работает как надо? И листы все (не 56), и в файлах нужные данные? А зависания да, пережидал конечно, кнопку нажал и пока не выполниться - ничего не трогал.

Автор - Digger23
Дата добавления - 23.09.2014 в 02:27
alex1248 Дата: Вторник, 23.09.2014, 08:57 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
А у меня 2-й макрос вообще ничего не изменил, причем довольно быстро прекратил работу (1-й отработал как надо и тоже быстро).
Digger23, а вот это
[vba]
Код
Sheets("Шаблон").copy After:=Sheets(Sheets.Count)
[/vba]
во 2-м макросе для чего? Это же копирование ЛИСТА шаблона с последующей вставкой в него данных. У вас 2-й макрос дублирует то, что уже сделал 1-й. Попробуйте запустить сразу 2-й без использования 1-го. У меня стал спрашивать файлы txt, которых у меня нет (хотя новые листы, вроде, создавал качественно, на сколько у меня хватило сил жать отмену работы с файлом txt, но это было порядка 250 листов). <_<


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 23.09.2014, 09:01
 
Ответить
СообщениеА у меня 2-й макрос вообще ничего не изменил, причем довольно быстро прекратил работу (1-й отработал как надо и тоже быстро).
Digger23, а вот это
[vba]
Код
Sheets("Шаблон").copy After:=Sheets(Sheets.Count)
[/vba]
во 2-м макросе для чего? Это же копирование ЛИСТА шаблона с последующей вставкой в него данных. У вас 2-й макрос дублирует то, что уже сделал 1-й. Попробуйте запустить сразу 2-й без использования 1-го. У меня стал спрашивать файлы txt, которых у меня нет (хотя новые листы, вроде, создавал качественно, на сколько у меня хватило сил жать отмену работы с файлом txt, но это было порядка 250 листов). <_<

Автор - alex1248
Дата добавления - 23.09.2014 в 08:57
Digger23 Дата: Вторник, 23.09.2014, 20:35 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Эти два макроса я привел как пример того, что проблему вызывает именно копирование (Copy), а не непосредственно создание листов (Add). Хотел узнать мнение сведующих людей. Использовать их последовательно для решения одной задачи не собирался. НО! alex1248, ваш пост подсказал мне решение - разделить задачу на этапы, если не получается сразу всё. 1 - создать листы, 2 - скопировать в листы шаблон, 3 - экспортировать в текст. 3 отдельных макроса. И всё заработало. Хочется конечно всё в одном флаконе организовать, ну да ладно, главное - работает. Большое спасибо за подсказку.
Для себя подробно откомментил 1й макрос. Гляньте пожалуйста, я правильно понимаю работу операторов? Если что не так - не сочтите за труд исправить комент. Понимание - ключ к успеху. :)
Заранее спасибо.
[vba]
Код
' Создание листов с именами из столбца A
Sub Macros()
Application.ScreenUpdating = False 'отключение обновления экрана для ускорения работы макроса
Dim i As Long
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row 'цикл от 1 до кол-во непустых строк в столбце A листа Vars
      On Error Resume Next 'включение отображения ошибок
      Sheets(Sheets("Vars").Range("A" & i).Value).Select 'выбор диапазона имен из столбца A листа Vars
      If Err And Sheets("Vars").Range("A" & i) <> "" Then 'если ошибок нет и диапазон выбран, то
          Sheets.Add After:=Sheets(Sheets.Count) 'добавление нового листа после последнего существующего
          ActiveSheet.name = Sheets("Vars").Range("A" & i) ' имя нового листа
      End If
Next i
Worksheets("Vars").Activate 'активация листа Vars
Application.ScreenUpdating = True 'включение обновления экрана
End Sub
[/vba]
Чуть не забыл :) . Используя вот это: [vba]
Код
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
[/vba], если файл с таким именем уже есть, выскакивает запрос о перезаписи. От запроса как избавиться? Чтобы по умолчанию переписывал существующий файл.


Сообщение отредактировал Digger23 - Вторник, 23.09.2014, 21:02
 
Ответить
СообщениеЭти два макроса я привел как пример того, что проблему вызывает именно копирование (Copy), а не непосредственно создание листов (Add). Хотел узнать мнение сведующих людей. Использовать их последовательно для решения одной задачи не собирался. НО! alex1248, ваш пост подсказал мне решение - разделить задачу на этапы, если не получается сразу всё. 1 - создать листы, 2 - скопировать в листы шаблон, 3 - экспортировать в текст. 3 отдельных макроса. И всё заработало. Хочется конечно всё в одном флаконе организовать, ну да ладно, главное - работает. Большое спасибо за подсказку.
Для себя подробно откомментил 1й макрос. Гляньте пожалуйста, я правильно понимаю работу операторов? Если что не так - не сочтите за труд исправить комент. Понимание - ключ к успеху. :)
Заранее спасибо.
[vba]
Код
' Создание листов с именами из столбца A
Sub Macros()
Application.ScreenUpdating = False 'отключение обновления экрана для ускорения работы макроса
Dim i As Long
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row 'цикл от 1 до кол-во непустых строк в столбце A листа Vars
      On Error Resume Next 'включение отображения ошибок
      Sheets(Sheets("Vars").Range("A" & i).Value).Select 'выбор диапазона имен из столбца A листа Vars
      If Err And Sheets("Vars").Range("A" & i) <> "" Then 'если ошибок нет и диапазон выбран, то
          Sheets.Add After:=Sheets(Sheets.Count) 'добавление нового листа после последнего существующего
          ActiveSheet.name = Sheets("Vars").Range("A" & i) ' имя нового листа
      End If
Next i
Worksheets("Vars").Activate 'активация листа Vars
Application.ScreenUpdating = True 'включение обновления экрана
End Sub
[/vba]
Чуть не забыл :) . Используя вот это: [vba]
Код
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
[/vba], если файл с таким именем уже есть, выскакивает запрос о перезаписи. От запроса как избавиться? Чтобы по умолчанию переписывал существующий файл.

Автор - Digger23
Дата добавления - 23.09.2014 в 20:35
alex1248 Дата: Вторник, 23.09.2014, 20:44 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
1 - создать листы, 2 - скопировать в листы шаблон, 3 - экспортировать в текст. 3 отдельных макроса. И всё заработало.

Так теперь просто записать операторы в такой последовательности, в какой они работают, в одном макросе. Думаю, им все равно, с паузой или без.
И всё же, у меня создались 250 листов с шаблоном, я сам прервал выполнение из-за того, что каждый раз выскакивало сообщение об отсутствии файла txt.


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 23.09.2014, 20:45
 
Ответить
Сообщение
1 - создать листы, 2 - скопировать в листы шаблон, 3 - экспортировать в текст. 3 отдельных макроса. И всё заработало.

Так теперь просто записать операторы в такой последовательности, в какой они работают, в одном макросе. Думаю, им все равно, с паузой или без.
И всё же, у меня создались 250 листов с шаблоном, я сам прервал выполнение из-за того, что каждый раз выскакивало сообщение об отсутствии файла txt.

Автор - alex1248
Дата добавления - 23.09.2014 в 20:44
alex1248 Дата: Вторник, 23.09.2014, 20:51 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
Гляньте пожалуйста, я правильно понимаю работу операторов?

[vba]
Код
' Создание листов с именами из столбца A
Sub Macros()
Application.ScreenUpdating = False 'отключение обновления экрана для ускорения работы макроса
Dim i As Long
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row 'цикл от 1 до ----последней непустой строки-----  в столбце A листа Vars
         On Error Resume Next ' -----в случае ошибки переход к следующему оператору, т.е. без прерывания работы программы-----
         Sheets(Sheets("Vars").Range("A" & i).Value).Select ' -----выбор листа с именем, равным содержимому указанной ячейки------  из столбца A листа Vars
         If Err And Sheets("Vars").Range("A" & i) <> "" Then ' ------в случае ошибки (т.е. если лист не найден) и непустой указанной ячейки ------
             Sheets.Add After:=Sheets(Sheets.Count) 'добавление нового листа после последнего существующего
             ActiveSheet.name = Sheets("Vars").Range("A" & i) ' имя нового листа
         End If
Next i
Worksheets("Vars").Activate 'активация листа Vars
Application.ScreenUpdating = True 'включение обновления экрана ----вроде и не обязательно ------
End Sub
[/vba]
Пометки и исправления выделил ------


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 23.09.2014, 20:56
 
Ответить
Сообщение
Гляньте пожалуйста, я правильно понимаю работу операторов?

[vba]
Код
' Создание листов с именами из столбца A
Sub Macros()
Application.ScreenUpdating = False 'отключение обновления экрана для ускорения работы макроса
Dim i As Long
For i = 1 To Sheets("Vars").Range("A" & Rows.Count).End(xlUp).Row 'цикл от 1 до ----последней непустой строки-----  в столбце A листа Vars
         On Error Resume Next ' -----в случае ошибки переход к следующему оператору, т.е. без прерывания работы программы-----
         Sheets(Sheets("Vars").Range("A" & i).Value).Select ' -----выбор листа с именем, равным содержимому указанной ячейки------  из столбца A листа Vars
         If Err And Sheets("Vars").Range("A" & i) <> "" Then ' ------в случае ошибки (т.е. если лист не найден) и непустой указанной ячейки ------
             Sheets.Add After:=Sheets(Sheets.Count) 'добавление нового листа после последнего существующего
             ActiveSheet.name = Sheets("Vars").Range("A" & i) ' имя нового листа
         End If
Next i
Worksheets("Vars").Activate 'активация листа Vars
Application.ScreenUpdating = True 'включение обновления экрана ----вроде и не обязательно ------
End Sub
[/vba]
Пометки и исправления выделил ------

Автор - alex1248
Дата добавления - 23.09.2014 в 20:51
Digger23 Дата: Вторник, 23.09.2014, 21:59 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Спасибо, теперь понятнее.
И последнее на сегодня.
Используя вот это: [vba]
Код
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
[/vba]
, если файл с таким именем уже есть, выскакивает запрос о перезаписи. От запроса как избавиться? Чтобы по умолчанию переписывал существующий файл.
 
Ответить
СообщениеСпасибо, теперь понятнее.
И последнее на сегодня.
Используя вот это: [vba]
Код
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
[/vba]
, если файл с таким именем уже есть, выскакивает запрос о перезаписи. От запроса как избавиться? Чтобы по умолчанию переписывал существующий файл.

Автор - Digger23
Дата добавления - 23.09.2014 в 21:59
alex1248 Дата: Вторник, 23.09.2014, 22:05 | Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
От запроса как избавиться?

Попробуйте так
[vba]
Код
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
Application.DisplayAlerts = True
[/vba]


skype alex12481632
Qiwi +79276708519
 
Ответить
Сообщение
От запроса как избавиться?

Попробуйте так
[vba]
Код
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Users\23Digger\Desktop\TEST\TEST2.xls", FileFormat:=xlNormal, CreateBackup:=False
Application.DisplayAlerts = True
[/vba]

Автор - alex1248
Дата добавления - 23.09.2014 в 22:05
Digger23 Дата: Среда, 24.09.2014, 21:02 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
alex1248, большое спасибо, теперь все работает так, как мне нужно (по крайней мере пока :) ). Следующий этап - сохранение выходных .txt не в кучу, а каждый месяц в свою папку, но это уже совсем другая история. С этой темой всё.
 
Ответить
Сообщениеalex1248, большое спасибо, теперь все работает так, как мне нужно (по крайней мере пока :) ). Следующий этап - сохранение выходных .txt не в кучу, а каждый месяц в свою папку, но это уже совсем другая история. С этой темой всё.

Автор - Digger23
Дата добавления - 24.09.2014 в 21:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование шаблона - ограничение 56 листов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!