Сохранение листов книги как отдельных файлов
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно «разобрать», т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.
Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставьте новый модуль через меню Insert — Module и скопируйте туда текст этого макроса:
Sub SplitSheets1() Dim s As Worksheet For Each s In ActiveWorkbook.Worksheets 'проходим по всем листам в активной книге s.Copy 'копируем каждый лист в новый файл Next End Sub
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Sub SplitSheets2() Dim s As Worksheet Dim wb as Workbook Set wb = ActiveWorkbook For Each s In wb.Worksheets 'проходим во всем листам активной книги s.Copy 'сохраняем лист как новый файл ActiveWorkbook.SaveAs wb.Path & "" & s.Name & ".xlsx" 'сохраняем файл Next End Sub
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например «D:Отчеты2012» и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла — параметр FileFormat:
ActiveWorkbook.SaveAs wb.Path & "" & s.Name & ".xlsb", FileFormat:=50
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Полный список всех вариантов можно посмотреть в справке MSDN.
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Sub SplitSheets3() Dim AW As Window Set AW = ActiveWindow For Each s In AW.SelectedSheets Set TempWindow = AW.NewWindow 'создаем отдельное временное окно s.Copy 'копируем туда лист из выделенного диапазона TempWindow.Close 'закрываем временное окно Next End Sub
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Sub SplitSheets4() Dim CurW As Window Dim TempW As Window Set CurW = ActiveWindow Set TempW = ActiveWorkbook.NewWindow CurW.SelectedSheets.Copy TempW.Close End Sub
Способ 5. Сохранение листов как отдельных PDF-файлов
Этот способ чем-то похож на второй, но листы сохраняются не как отдельные книги Excel, а в формате PDF, что часто требуется, если никто не должен менять документ и увидеть ваши формулы. Обратите внимание, что:
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Sub SplitSheets5() Dim s As Worksheet For Each s In ActiveWorkbook.Worksheets s.ExportAsFixedFormat Filename:=ThisWorkbook.Path & "" & s.Name & ".pdf", Type:=xlTypePDF Next End Sub
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:
Ссылки по теме
- Сборка листов из нескольких книг в одну
- Что такое макросы, куда вставлять код на Visual Basic, как их использовать.
- Создание файлов
- Листы Excel
- Книги Excel
Данный макрос позволяет упростить процедуру сохранения активного листа в книге Excel в отдельный файл.
Для использования этого макроса на любом листе в книге Excel создайте кнопку, и назначьте ей макрос СохранитьЛистВФайл.
При запуске макроса (нажатии кнопки) будет выведено диалоговое окно выбора имени для сохраняемого файла, после чего текущий лист будет сохранён под заданным именем в выбранной папке.
Сохранение производится в формате XLS (формат Excel 2003)
Если пользователь отказался от ввода имени файла (нажал клавишу ESC или кнопку «Отмена» в диалоговом окне),
то сохранения листа в файл не происходит.
Sub СохранитьЛистВФайл() On Error Resume Next ' название подпапки, в которую по-умолчанию будет предложено сохранить файл Const REPORTS_FOLDER = "Отчёты" ' создаём папку для файла, если её ещё нет MkDir ThisWorkbook.Path & "" & REPORTS_FOLDER ' выбираем стартовую папку ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "" & REPORTS_FOLDER ' вывод диалогового окна для запроса имени сохраняемого файла Filename = Application.GetSaveAsFilename("отчёт.xls", "Отчёты Excel (*.xls),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(Filename) = vbBoolean Then Exit Sub ' копируем активный лист (при этом создаётся новая книга) Err.Clear: ActiveSheet.Copy: DoEvents If Err Then Exit Sub ' произошла какая-то ошибка при попытке копирования листа ' убеждаемся, что активной книгой является копия листа If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then ' сохраняем файл под заданным именем в формате Excel 2003 ActiveWorkbook.SaveAs Filename, xlWorkbookNormal ' закрываем сохранённый файл ' (удалите следующую строку, если закрывать созданный файл не требуется) ActiveWorkbook.Close False End If End Sub
PS: Кто-то может сказать, что для сохранения листа в файл в объектной модели Excel есть метод SaveAs, применимый к объекту Worksheet.
Но, как ни странно, выполнение кода ActiveSheet.SaveAs «<имя файла>» приводит к сохранению книги целиком, что равносильно использованию кода ActiveWorkbook.SaveAs «<имя файла>»
Почему этот метод сохранения работает так нелогично — лично мне не понятно (видимо, Microsoft что-то там перемудрил)
- 178197 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Сохранить лист в отдельный файл. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
0 / 0 / 0 Регистрация: 23.01.2012 Сообщений: 6 |
|
1 |
|
23.01.2012, 17:07. Показов 77907. Ответов 82
Процедура по нажатию кнопки-сохранить к примеру лист3 из текущей книги как отдельный файл.xls с названием текущей даты в отдельную папку. А также если файл с таким названием уже существует, тогда перезаписать! Подскажите пожалуйста! Заранее спасибо!
0 |
Заблокирован |
|
23.01.2012, 21:55 |
2 |
Klim_ul, давай для начала с разделом определимся — это VB6 или VBA(Excel)?
по нажатию кнопки-сохранить Где такая кнопка есть — на форме, на листе, в тулбаре?
как отдельный файл.xls с названием текущей даты в отдельную папку. отдельную от чего? Конкретики маловато!
0 |
0 / 0 / 0 Регистрация: 23.01.2012 Сообщений: 6 |
|
24.01.2012, 10:10 [ТС] |
3 |
Отдельно от самой книги… например открыта Книга.xls состоящая из 3-х листов, далее на каждом из листов ввели какую либо информацию…. Мне нужно сохранить только лишь Лист3 из этой книги, как отдельный файл.xls название которого будет текущая дата. Добавлено через 2 минуты Добавлено через 40 секунд Добавлено через 43 секунды
0 |
Заблокирован |
||||
24.01.2012, 11:23 |
4 |
|||
3 |
KoGG 5590 / 1580 / 406 Регистрация: 23.12.2010 Сообщений: 2,366 Записей в блоге: 1 |
||||
24.01.2012, 11:44 |
5 |
|||
Процедура для активного листа. Кнопку расположишь сам, там где тебе нужно, и привяшешь к процедуре:
3 |
Dragokas 17993 / 7619 / 890 Регистрация: 25.12.2011 Сообщений: 11,352 Записей в блоге: 17 |
||||||
24.01.2012, 11:45 |
6 |
|||||
Сообщение было отмечено как решение Решение
Вложения
7 |
0 / 0 / 0 Регистрация: 23.01.2012 Сообщений: 6 |
|
25.01.2012, 11:51 [ТС] |
7 |
Огромное Всем спасибо!!! Добавлено через 15 минут
0 |
17993 / 7619 / 890 Регистрация: 25.12.2011 Сообщений: 11,352 Записей в блоге: 17 |
|
25.01.2012, 17:35 |
8 |
Апострофф, p = ThisWorkbook.Path
2 |
0 / 0 / 0 Регистрация: 23.01.2012 Сообщений: 6 |
|
25.01.2012, 20:37 [ТС] |
9 |
Diskretor, Огромное спасибо и тысяча извинений, потому что у меня еще один вопрос… Теперь как сделать чтобы сохранение производилось в той папке где находится книга но в отдельную папку так чтобы это не влияло на первоначальный путь….. Простите я сам не понял что написал……
0 |
Заблокирован |
||||
25.01.2012, 21:42 |
10 |
|||
Сообщение было отмечено как решение Решение
Это поправка в код Diskretor`а на
Вопрос как этого избежать. Не по теме: Плохо, когда ноги с головой не дружат:D ThisWorkbook.Sheets(3).Copy Даже не догадывался, что подобная команда соэдает новую книгу с указанным листомО_о
4 |
Dragokas 17993 / 7619 / 890 Регистрация: 25.12.2011 Сообщений: 11,352 Записей в блоге: 17 |
||||||||
25.01.2012, 23:56 |
11 |
|||||||
Сообщение было отмечено как решение РешениеАпострофф, я Вам даже скажу больше:
P.S. ради интереса проверил. Можно подставлять и Integer массив с номерами листов. Эффект будет такой же:
5 |
DanAttess 0 / 0 / 0 Регистрация: 29.05.2012 Сообщений: 3 |
||||
29.05.2012, 10:55 |
12 |
|||
А как можно скопировать 2 вполне определенных листа.
?
0 |
Заблокирован |
||||
29.05.2012, 13:02 |
13 |
|||
DanAttess, а почитать, что Diskretor постом выше написал не судьба?
1 |
DanAttess 0 / 0 / 0 Регистрация: 29.05.2012 Сообщений: 3 |
||||
29.05.2012, 18:05 |
14 |
|||
Спасибо! Это мой первый опыт в VBA. Не судите строго! Добавлено через 49 минут
0 |
Заблокирован |
||||
29.05.2012, 18:29 |
15 |
|||
если использовать массивы не получается Не опускаем руки, делаем с массивами
1 |
0 / 0 / 0 Регистрация: 23.07.2012 Сообщений: 7 |
|
23.07.2012, 13:38 |
16 |
Здравствуйте. В экселе не шибко силен. Кто-нибудь может выложить файл с таким примером: чтобы при нажатии кнопки «сохранить» сохранялся допустим лист 2 (на котором будет таблица с формулами), но чтобы сохранялся лист не с формулами, а со значениями, стиль шрифта, размеры столбцов, границы таблицы желательно оставить неизменными. При этом чтобы можно было выбирать путь сохранения и имя файла (или второй вариант — фиксированный путь сохранения и имя файла, допустим сделать 2 кнопки с разными способами сохранения). Честно пытался разобраться с представленными здесь способами, но знаний маловато. Думаю по примеру было бы проще сообразить что к чему
0 |
1121 / 229 / 36 Регистрация: 15.03.2010 Сообщений: 698 |
|
23.07.2012, 15:13 |
17 |
Здравствуйте. В экселе не шибко силен. Кто-нибудь может выложить файл с таким примером: чтобы при нажатии кнопки «сохранить» сохранялся допустим лист 2 … Когда то очень давно писал что то похожее. Макрос копирует выделенные листы в новую книгу и удаляет все, что выходит за пределы печати. Также удаляет все скрытые строки и столбцы в страницах печати. Есть одна неприятность, если удаляемая ячейка объедененная, то теряется ее значение.
1 |
0 / 0 / 0 Регистрация: 23.07.2012 Сообщений: 7 |
|
24.07.2012, 07:55 |
18 |
Вот это почти похоже на правду. То что удаляет все за областью печати — это не страшно. При сохранении можно указать путь и имя, и что сохраняет значения, а не формулы — это все то что надо. Только как бы немного доработать, чтобы сохранялся не выделенный лист, а к примеру так: на первом листе будут какие-то расчеты и кнопка сохранить, а таблицы с результатами на втором и третьем листе. И вот при нажатии на кнопку сохранить, сохранялись бы второй и третий листы в отдельной книге. Добавлено через 2 часа 30 минут
0 |
Dragokas 17993 / 7619 / 890 Регистрация: 25.12.2011 Сообщений: 11,352 Записей в блоге: 17 |
||||
24.07.2012, 14:56 |
19 |
|||
Конечно можно было все это заменить копированием листов с исходной книги, предварительно заменив формулы значениями и закрыть исходный без сохранения. Но хотелось показать способ, чтобы не вносить никаких изменений в исходную книгу.
1 |
0 / 0 / 0 Регистрация: 23.07.2012 Сообщений: 7 |
|
24.07.2012, 15:58 |
20 |
Превосходно! Спасибо большое. Подскажите еще пожалуйста, что надо изменить, если этих листов листов не 2 а 20? И другой вопрос сразу: можно сделать так чтобы из этих 20 листов сохранялись не все, а выборочные — в зависимости от условий. К примеру если ячейка А1=0, то сохраняются листы 2-15, если А1=1, то листы 2-18, если А1=2, то лист 19, если А1=3, то листы 2-20. Понятно что слишком замудрено, но такое возможно или вообще никак?
0 |
Сохранение листа в из книги как отдельный файл.xls
Смотрите также: Добрый день, господа!Перерыл кучу литературы Workbook Dim sh в заданном формате.Помогите справиться с в ячейку листа,lEXITfnSheetsSave: Then Exit Function’.Close листа откорректируйте: все листы в
для каждого листа так: на первомБудет ли работать: меня сохраняет вKlim_ulПомогите создать макрос, и нигде не
As Worksheet DimAbu небольшой проблемкой. например в А1
Application.ScreenUpdating = TrueTRC.Pop «fnSheetsSave»
End With200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Save_as()- вашей книге, а выполнить немаленькую цепочку листе будут какие-тоThisWorkbook.Sheets(2).Copy ThisWorkbook.Sheets(3).Copy ActiveWorkbook.SaveCopyAs текущую директорию, а: Процедура по нажатию для того чтобы нашёл. DateString As String: так вроде спрашивалосьЕсть файл Excel
Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>newName = Sheets(Sh.Name).Cells(1,TRC.PushTRC.INFO «Сохранение листаWorkbooks(«Book_Save.xls»).Close 0
10With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = iPath
только некоторые, то
действий (выбрать лист, расчеты и кнопка FileN ?
мне нужно указать кнопки-сохранить к примеру собрать(скопировать) листы изКороче, нужно сохранить Dim FolderName AsМне диалог в с несколькими листами. 1)End Function в отдельную книгу»,End Sub20.InitialFileName = ThisWorkbook.Pathв вашем варианте макрос придется немного правой кнопкой по сохранить, а таблицыvhow4ik другой путь! лист3 из текущей разных файлов Excel web-страничку, например http://www.yandex.ru/
String Application.EnableEvents = голову и пришёл Сделал ToolBar с’…kbcgv eColorBloc
П.С. Только вот & «» & излишен. И, мне изменить. Выделите нужные ярлычку листа, выбрать с результатами на: ThisWorkbook.Sheets(Array(2, 3)).Copy ActiveWorkbook.SaveCopyAsАпострофф книги как отдельный в один файлна винт в False Set WbMainP.S. сохраняет и
кнопками. Как реализоватьActiveWorkbook.SaveAs iPath &: Пригодился идеально вашIf sNewFileName = никак не получается «Сравнение» кажется, что при вам листы вКопировать втором и третьем FileN:
файл.xls с названием Excel.
файл формата .htm = ActiveWorkbook FolderName вправду всю книгу, кнопку «Сохранить как» newName ‘& «.xls» код. Спасибо. «» Then sNewFileName сделать так, чтобы30If .Show =
одиночном сохранении - книге, удерживая на, указать отдельный предварительно листе. И вот
DanAttessАпострофф текущей даты вВводная информация:
, прямо из = WbMain.Path &
но других вариантов только для текущего
AVIПопытался из него = sSheetName модуль (функция) тоже 0 Then Exit подстановка имени файла клавиатуре клавишу Ctrl созданный пустой файл при нажатии на, а почитать, что, p = ThisWorkbook.Path отдельную папку. А1. Все собираемые Excel при этом «Archive» On Error чё то не листа. т. е.: А если мне
сделать надстройку. ЧтобыmChkPath:
копировался в новую Sub в диалог более или Shift и и т.д.) Гораздо кнопку сохранить, сохранялисьDiskretorDiskretor также если файл листы имеют одинаковые не открывая Эксплорер Resume Next MkDir придумалось чтобы при нажатии
нужно присвоить любое добавить ссылку на’проверим и если книгу. Там у40ThisWorkbook.ActiveSheet.Copy логична запустите приведенный ниже
проще использовать короткий
бы второй ипостом выше написал
, FileN = ThisWorkbook.Path с таким названием имена, при копировании и не загружая
FolderName If ActiveSheet.VisibleVlanib на кнопку можно имя? макрос в панель
что, сформируем путь меня сумма прописью.50Application.DisplayAlerts = False- макрос: макрос, автоматизирующий эти третий листы в
не судьба? & «» & уже существует, тогда имя листа =
никуда эту страницу. = -1 Then: Так я и было выбрать директориюManyasha быстрого запуска эксель.If sNewPath = Можно в принципе60.Execute.DisplayAlertsSub SplitSheets3() Dim действия. отдельной книге.Ваш код создаст Date & «.xls»
перезаписать! Подскажите пожалуйста! имени книги сПодозреваю, что без ActiveSheet.Copy Set Wb говорю, в Excel и имя файла,: Сохранив его в «» Then и значение только
70Application.DisplayAlerts = True- желательно отключать/включать AW As WindowНажмите сочетание
DanAttess
две новые книгиThisWorkbook.Path меняете на,
Заранее спасибо! которой копируется лист API не обойтись. = ActiveWorkbook Wb.SaveAs есть прекрасный метод и текущий листAVI формате надстройки. В
sNewPath = ActiveWorkbook.path копировать, не обязательно80End With тогда, когда необходимо Set AW =
Alt+F11, А можно увидеть с одним листом например, «C:temp»Апострофф
2. Все файлыHELP PLEASE FolderName _ & для получения имени сохранялся бы в, на примере макроса
этом случае не & strPS с модулем -90ActiveWorkbook.Close False
подавить сообщения, а ActiveWindow For Eachили выберите в
файл с результатом в каждой, причёмKoGG: находятся в однойЗаранее благодарен.Ну, типа «» & Wb.Sheets(1).Name файла с помощью отдельный файл (.html Лист_в_файл
работает, только изElse как проще. ЕслиEnd Sub не на всё s In AW.SelectedSheets меню сохранений?Sub Into_New_Book() Dim сохранит только последнюю!, Prefix = «C:temp»Klim_ul папке, и необходим как в ReGetТипа & «.xls» Wb.Close диалога сохранения: .txt .xls)AVI этого же файла.If Right(sNewPath, 1) не сложно helpWasilich время процедуры Set TempWindow =Сервис — Макрос - Ar(), ArAll&(), ShSlavaRusDanAttess, давай для начала пользовательский интерфейс множественного как в ReGet False End IfApplication.GetSaveAsFilenameСпасибо
: Manyasha, Вы - Подскажите пожалуйста как <> strPS Then подскажите!): Спасибо Андрей. Только- AW.NewWindow ‘создаем отдельное Редактор Visual Basic As Excel.Worksheet, n: Спасибо! Это мой: с разделом определимся выбора файлов для — замучаешься. А MsgBox «Лист «AbuP.S. Желательно с огонь. Спасибо его сделать для sNewPath = sNewPathshebelme Ник мой убери,Sheets(Sh.Name). временное окно s.Copy (Tools — Macro Ar = Array(2, первый опыт вDiskretor — это VB6 копирования так — см. & ActiveSheet.Name &: Ой! Правда работает! примером кода.AVI надстройки. & strPS: Прошу вашей помощи! это ж не<> ‘копируем туда лист — Visual Basic 3) ‘порядковые номера VBA. Не судите
, Огромное спасибо и или VBA(Excel)?Alex77755 API-функцию » в виде Йа шляпа!Vlanib: Помогите, пожалуйста, еще:В нём имяIf Not fnPathIsExists(sNewPath)Подскажите как изменить для меня,Sh. из выделенного диапазона Editor) сохраняемых листов с строго! тысяча извинений, потомуГде такая кнопка: Не все файлыURLDownloadToFile отдельного файла сохранёнdikand: Сохранение листа вЯ так понимаю, изменил, для того Then код таким образом,и цифорки из(не забывайте - TempWindow.Close ‘закрываем временное, вставьте новый модуль формулами ReDim PreserveНе подскажите, сложно что у меня есть — на надо обрабатывать?Ура-а-а! Нашёл! в папку «: Имееться книга, как формате вэб страницы: что Sheets(List).Buttons.Delete удаляет чтобы формировал имяsNewPath = «» что бы был кода тоже, иначеSheets() окно Next End через меню ArAll(0 To ThisWorkbook.Worksheets.Count ли сделать так, еще один вопрос… форме, на листе,Можно формочку соМожет ещё кому & FolderName ActiveWindow.SelectedSheets.Delete сделать чтобы необходимыеActiveWorkbook.PublishObjects.Add(xlSourceSheet, «C:temp777.htm», «Лист1»).Publish кнопки, но не из ячеек наGoTo mChkPath прописан конкретный адрес будут вопросы -относится к SubInsert — Module — 1) For чтобы все выражения Теперь как сделать в тулбаре? списком применить пригодится: Application.EnableEvents = True листы сохранялись в
CyberForum.ru
Сохранение листов книги как отдельных файлов
Abu удается флажочек из листе.End If для сохранения нового «а зачем цифры?»!ActiveWorkbook.Создавать новое окно ии скопируйте туда Each Sh In в скопированных листах чтобы сохранение производилось
отдельную от чего?metro62Private Declare Function End Sub отдельную книгу (например: Пример из API-Guide элементов управления и200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Save_as()End If
файла, а неВот еще варианты, так что использование копировать через него, текст этого макроса: ThisWorkbook.Worksheets ArAll(n) = были сохранены как в той папке Конкретики маловато!: У пользователя должна URLDownloadToFile Lib «urlmon»Racer021 лист счет, договоPrivate Type OPENFILENAME
Способ 1. Простое разделение
форм. Что добавить10 With Application.FileDialog(msoFileDialogSaveAs)’создаем полный путь ручной выбор. в примере, в коллекции без указания а не напрямую,Sub SplitSheets1() Dim Sh.Index n = значения? где находится книгаKlim_ul быть возможность выбора, Alias «URLDownloadToFileA» (ByVal
: Как сохранить лист и ТН-2) при lStructSize As Long в макрос, что20 .InitialFileName = к новому файлуЗа ранее спасибо! т.ч. с макросом родителя — чревато) приходится потому, что
s As Worksheet n + 1В коде ниже но в отдельную: Отдельно от самой поэтому он определяет pCaller As Long, в txt с этом название новой hwndOwner As Long
Способ 2. Разделение с сохранением
бы флажок тоже [b3] & «sFullFileName = sNewPathWasilich от- Попробуйте избавиться Excel не умеет
For Each s Next ThisWorkbook.Worksheets(ArAll).Copy ActiveWorkbook.Sheets(Ar(0)).Activate сохранять как значение, папку так чтобы книги… например открыта файлы для обработки ByVal szURL As помощью макроса с книги бралось с hInstance As Long удалялся? » & [b8] & sNewFileName &: Так попробуйте.AndreTM
от использования копировать группу листов, In ActiveWorkbook.Worksheets ‘проходим Application.Volatile Application.Calculate Application.ScreenUpdating если использовать массивы это не влияло Книга.xls состоящая из ( в моем String, _ ByVal определенным название. Например
номера счета и lpstrFilter As StringManyasha30 If .Show IIf(fnGetFileExt(sNewFileName) = «»,200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Лист_в_файл() ‘Сохранить текущийесли он неActiveWorkbook. если среди них по всем листам = False For не получается: на первоначальный путь….. 3-х листов, далее
случае это табеля, szFileName As String, Имя_файла.txt
наименованя плательщика (когда lpstrCustomFilter As String: = 0 Then
- «.xls», «»)
- лист.
- возражает.
- - Процедура массового
- есть листы с
в активной книге Each n InWith Sheets(«sheet1»).UsedRange .Value
Способ 3. Сохранение в новые книги только выделенных листов
Простите я сам на каждом из которые собираются для ByVal dwReserved AsИ какой формат откроете книгу поймете nMaxCustFilter As LongAVI Exit Sub’возможен долгий процесс,Dim List$, iPath$RAN сохранения может быть
умными таблицами. Копирование s.Copy ‘копируем каждый Ar With ActiveWorkbook.Worksheets(n).UsedRange.Cells = .Value End не понял что листов ввели какую дальнейшего расчета, что-то Long, ByVal lpfnCB выбирать. При сохранении о чем я) nFilterIndex As Long, раскомментируйте строчку40 ThisWorkbook.ActiveSheet.Copy
поэтомуiPath = «D:Папкапапка»: Любой каприз …. с параметром, как через новое окно лист в новый .Value = .Value With написал…… либо информацию…. Мне надо рассчитывать, что-то As Long) As
Способ 4. Сохранение только выделенных листов в новый файл
несколько txt форматов. Пароль на VBA- lpstrFile As String200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(List).DrawingObjects.Delete ‘Удаляем все элементы50 Application.DisplayAlerts =’дадим возможность поработать ‘ конкретный адресВариант для 1 раз и определяющим позволяет такую проблему файл Next End
End With Nextvhow4ikЛадно покажу так. нужно сохранить только нет) Long Public Function Стандартный для Windows 123
Способ 5. Сохранение листов как отдельных PDF-файлов
nMaxFile As LongAVI False другим для сохранения нового листа этот ваш «конкретный» обойти. Sub Erase ArAll: n: Не опускаем руки, Например
- лишь Лист3 из________________________________ DownloadFile(URL As String,
- какой?dikand lpstrFileTitle As String: Manyasha, Спасибо. Не60 .Execute
- DoEvents файла
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Save_as() лист (или устанавливающий
Во всех описанных вышеЕсли теперь выйти из = 0 ReDim делаем с массивамиСечас у меня этой книги, какЗадание «за себя» LocalFilename As String)
Способ 6. Готовый макрос из надстройки PLEX
Юрий М: Вобщем вроде как nMaxFileTitle As Long заметил70 Application.DisplayAlerts =On Error Resume
planetaexcel.ru
Сохранить лист в отдельный файл. (VBA)
Application.ScreenUpdating = FalseWith Application.FileDialog(msoFileDialogSaveAs) его на способах каждый лист редактора Visual Basic
Preserve ArAll(0 To Dim ws As сохраняет «D:ДокументыОтчеты» Все
отдельный файл.xls название не прошу выполнить.
As Boolean Dim: Включаем макрорекордер, записываем проблему с одним lpstrInitialDir As StringAVI
True Next
Application.DisplayAlerts = False.InitialFileName = ThisWorkbook.PathActiveSheet сохранялся в свой и вернуться в ThisWorkbook.Worksheets.Count — 1 Worksheet ThisWorkbook.Sheets(Array(2, 3)).Copy отлично, но если которого будет текущая
Уровень подготовки по lngRetVal As Long сохранение листа в листом смог осилить lpstrTitle As String: При выполнении макроса80 End With
’создаем копию листа…List = ActiveSheet.Name & «» &) отдельный файл. Если Excel, а затем — (UBound(Ar) + For Each ws поменять имя папки дата. VBA у меня
lngRetVal = URLDownloadToFile(0, текстовый файл. Формат следующим способом
flags As Long выходит ошибка.90 ActiveWorkbook.Close False’создается новая книгаSheets(List).Copy «Сравнение»- Процедуру сохранения же вы хотите запустить наш макрос
1)) For Each In ActiveWorkbook.Worksheets With «Документы» на «База»Это VBA(Excel)! А «0», где-то при URL, LocalFilename, 0, выбираем тот, которыйPrivate Sub Несохранять() nFileOffset As IntegerAVIEnd Sub
и она становитсяSheets(List).UsedRange.Value = Sheets(List).UsedRange.ValueIf .Show = одного листа можно сохранить в отдельный (Alt+F8), то все Sh In ActiveWorkbook.Worksheets ws.UsedRange .Value =
то нужно заходить кнопку создаем сами создании/изменении макросов помогает 0) If lngRetVal нужен Вам, а Dim №СФ As nFileExtension As Integer: В этом ВашемОформляйте коды тегами активнойSheets(List).Buttons.Delete ‘Удаляем кнопки
0 Then Exit заменить на функцию новый файл сразу листы из текущей If IsError(Application.Match(Sh.Index, Ar, .Value End With
опять в код CommandButton и привязываем эмпирический метод, где-то = 0 Then не Windows. Останавливаем Variant Sheets(«СчФ»).Select ‘Открытие lpstrDefExt As String сообщении не работаетКнопка #ThisWorkbook.Sheets(sSheetName).Copy’Sheets(List).DrawingObjects.Delete ‘Удаляем все Sub с параметрами, возврат
группу выделенных предварительно книги будут разбиты 0)) Then ArAll(n) Next ws
программы и менять
Макрос! есть возможность прочитать DownloadFile = True макрорекордер — макрос листа «СчФ» Application.ScreenUpdating lCustData As Long
автоматичская подстановка имениRANTRC.NOERROR «Лист скопирован элементыThisWorkbook.ActiveSheet.Copy
— сохраненное имя; листов, то нам по отдельным новым = Sh.Index nvhow4ik
путь. Вопрос как
Добавлено через 40 секунд
- читаю, спросить End Function Sub готов :-)
= False 'Отключение lpfnHook As Long файла из ячейки
: В отличие от
в новую книгу
ActiveWorkbook.SaveAs iPath &
Application.DisplayAlerts = False
и тогда её
потребуется слегка видоизменить
созданным книгам.
= n +: Здравствуйте. В экселе этого избежать. СамаКнопка на листе! — спрашиваю. Вот, Load() DownloadFile «http://www.yandex.ru/»,Racer021 отображения результатов на lpTemplateName As String
а1. Не могли макроса из #15, (» & sSheetName List ‘& «.xls».Execute можно будет использовать наш макрос:
При необходимости, можно созданные 1 End If
не шибко силен. книга находится в
Добавлено через 43 секунды
как-то так.
"c:yandex.htm" End SubБольшой: При таком сохранении экране With ActiveSheet
End Type Private бы Вы подрпавить, этот макрос не
& ")"
ActiveWorkbook.Close False
Application.DisplayAlerts = True
в процедуре массового
Sub SplitSheets4() Dim
книги сразу же
Next Application.DisplayAlerts =
Кто-нибудь может выложить той же папкеАпостроффAlex77755 СЕНКС to Messir.а
файл из 123.xlsm ‘Переменным присваиваются введенные Declare Function GetSaveFileName пожалуйста. может в принципе.
If TRC.IFERROR(«ОШИБКА копирования
Application.DisplayAlerts = TrueEnd With сохранения, которая будет CurW As Window сохранять под именами False ActiveWorkbook.Worksheets(ArAll).Delete Application.DisplayAlerts файл с таким где папка для, Буду оч. благодарен: Интерфейс для выбора у меня почему-то
сам переименовывается в в бланк данные Lib «comdlg32.dll» Alias
ManyashaДля того, чтобы
листа (» &Application.ScreenUpdating = TrueActiveWorkbook.Close False
заключаться только в Dim TempW As листов. Для этого
= True Application.ScreenUpdating
примером: чтобы при сохранения "Отчеты"
за помощь!
файлов ( и не получилось. все 123.txt и весь №СФ = .Range("ном").Value "GetSaveFileNameA" (pOpenfilename As: странно... Запустила макрос работал из надстройки, sSheetName & ")
MsgBox "Готово!"End Sub переборе нужных листов
Window Set CurW макрос придется немного = True Application.Dialogs(xlDialogSaveAs).Show нажатии кнопки "сохранить"Апострофф
Апострофф
только!)
прошло без ошибок
текст почему-то сохраняется
End With Sheets("СчФ").Copy
OPENFILENAME) As Long
раз 10, ошибки
нужно так
%1") Then GoTo
End SubRAN- «Очистку» листа = ActiveWindow Set изменить, добавив команду End SubКонечно можно сохранялся допустим лист: FileN = ThisWorkbook.Path: Option Explicit SubБез макроса обработки. но ничего не в кавычках Before:=Sheets(1) Range(«Дат»).Select Selection.Copy Dim OFName As
нет. Потом открыла200?’200px’:»+(this.scrollHeight+5)+’px’);»>40 ActiveWorkbook.ActiveSheet.Copy
lEXITfnSheetsSaveФерхо: копии тоже можно TempW = ActiveWorkbook.NewWindow сохранения в цикл: было все это
2 (на котором
& «Отчеты» & Макрос() Dim p$,
Для макроса нужны сохранилось. ???Не знаю.
Юрий М
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, OPENFILENAME Private Function другой файл, закрылаkbcgv
'после возможно долгого
: Не претендую ни
Wasilic
сделать параметрической -
CurW.SelectedSheets.Copy TempW.Close End
Sub SplitSheets2() Dim
заменить копированием листов будет таблица с
Date & ".xls"Это WB As Workbook
образцы что есть,
У меня работает.
: А Вы как
SkipBlanks _ :=False,
ShowSave() As String
его и запустила: Не может делать процесса на что, просто, лучше выкладывай коды, ввести ещё один
Sub
s As Worksheet с исходной книги,
формулами), но чтобы поправка в код Dim i As как надоПеред тем, как
хотели? Transpose:=False With Selection.Interior OFName.lStructSize = Len(OFName) этот же макрос
имя из ячеек?'дадим возможность поработать я делаю так
а не файлы. параметр функции, которыйЭтот способ чем-то
Dim wb as предварительно заменив формулы сохранялся лист не
Diskretor Long p =Поместите в папку вызвать процедуру Load
Racer021 .ColorIndex = 2
OFName.hwndOwner = Hwnd - ошибка.Я в этом
другим (возможно кому-то пригодитсяФайл качать надо,
будет определять, что похож на второй, Workbook Set wb
значениями и закрыть с формулами, а`а на
ThisWorkbook.Path If VBA.Right$(p, где есть xlx убедись, что сам
: Мне нужно чтобы .Pattern = xlSolid OFName.hInstance = Application.hInstanceПока не разобралась
ничего практически неDoEvents идея)
а по коду
именно нужно очистить но листы сохраняются
= ActiveWorkbook For
исходный без сохранения. со значениями, стильНе по теме:
1) <> "" файлы и откройте IE (Internet Explorer)
начальный файл 123.xlsm
End With Range("Поставщик").Select OFName.lpstrFilter = "html
почему... понимаю, методом тыка
Application.ScreenUpdating = False200?'200px':''+(this.scrollHeight+5)+'px');">
сразу может быть
на листе не как отдельные Each s In Но хотелось показать
шрифта, размеры столбцов,Плохо, когда ноги с
Then p =
metro62
подключен к сети,
оставался прежним а
Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, (*.html)" + Chr$(0)
Цитата всё. Именно изIf bDelFurmula ='сохранить лист в
понятно - не- И плиз,
книги Excel, а wb.Worksheets 'проходим во
способ, чтобы не
границы таблицы желательно головой не дружат:D
p & ""
: Спасибо огромное. а не находится 1 лист сохранялся
Operation:=xlNone, SkipBlanks _
+ "*.html" +AVI, 08.09.2016 в ячееек b3 и True Then
отдельном файле то. не надо месседжбоксов! в формате PDF, всем листам активной
вносить никаких изменений оставить неизменными. При
Даже не догадывался, p = p
Разберусь завтра.
в автономном режиме.
в txt :=False, Transpose:=False With
Chr$(0) OFName.lpstrFile = 12:21, в сообщении
b8 и делает
'убираем ссылки и
'sSheetName - имя
Файлы - бонус. А если очень
что часто требуется,
книги s.Copy 'сохраняем в исходную книгу.Превосходно! этом чтобы можно
что подобная команда & Format(Date, "YYYYMMDD")
Я его вКстати, попутно вопрос,
Юрий М Selection.Interior .ColorIndex =
Space$(254) OFName.nMaxFile =
№ 10200?'200px':''+(this.scrollHeight+5)+'px');">не работает
имя.
формулы сохраняемого листа (еслиWasilich
надо - то
если никто не лист как новый Спасибо большое. Подскажите
было выбирать путь соэдает новую книгу
Set WB =
принципе уже запустил. наверно к Messir:: Так бы сразу 2 .Pattern =
255 OFName.lpstrFileTitle =
автоматичская подстановка имениИ всё как
ActiveSheet.Range("A1").CurrentRegion.Value = ActiveSheet.Range("A1").CurrentRegion.Value
такого нет -
: Это нам с просто вызовы процедур должен менять документ
файл ActiveWorkbook.SaveAs wb.Path еще пожалуйста, что сохранения и имя с указанным листомО_о Workbooks.Add ThisWorkbook.Worksheets("Лист3").Copy After:=WB.Worksheets(WB.Worksheets.Count)
Копирует нужный лист
возможно ли избавиться
и сказали :-)
xlSolid End With
Space$(254) OFName.nMaxFileTitle =
файла из ячейки хотелось работает вTRC.INFO «Формулы удалены»
ни чего не тобой просто, посмотрел оборачиваются в дополнительный и увидеть ваши & «» & надо изменить, если файла (или второйDanAttess Application.DisplayAlerts = False первого открывшегося файла. и от этой Сохранить Как. Исходник Range(«Плательщик»).Select Selection.Copy Selection.PasteSpecial
255 OFName.lpstrInitialDir = а1 виде надстройки, благодаря:End If делается)
и понятно. А
интерактив. Ведь ваше
формулы. Обратите внимание, s.Name & ".xlsx" этих листов листов
вариант - фиксированный: For i =
Sub Get_All_File_from_Folder() Dim
проверки. То есть останется и будет
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
"C:" OFName.lpstrTitle =в том файле
Цитата
'однозначно убираем перенос
'sNewFileName - имя
тем кто знает,
сообщение неинформативно -
что: ‘сохраняем файл Next не 2 а путь сохранения иАпострофф
1 To WB.Worksheets.Count sFolder As String, перед загрузкой подключать
сохранён текстовый. По
_ :=False, Transpose:=False «» OFName.flags = открывается диалог выбора
RAN, 10.01.2015 в по словам файла (если не что «никто не вы же правильностьдля этого используется уже End Sub
20? И другой имя файла, допустим, я Вам даже
— 1 WB.Worksheets(1).Delete sFiles As String эксплорер к сети умолчанию (если ничего With Selection.Interior .ColorIndex 0 If GetSaveFileName(OFName)
папки
16:44, в сообщении
ActiveSheet.Range(«A1»).CurrentRegion.WrapText = False задано — берется
знает» — сложновато копирования нигде не другой метод (ExportAsFixedFormatЭтот макрос сохраняет новые
вопрос сразу: можно сделать 2 кнопки скажу больше:
Next i Application.DisplayAlerts ‘диалог запроса выбора из Excel.Во-истину: компьютер не указать) активный
excelworld.ru
Сохранить лист в отдельный файл. (VBA) (Макросы/Sub)
= 2 .Pattern Then ShowSave =
, имя файла указывать № 17200?’200px’:»+(this.scrollHeight+5)+’px’);»>Для того,’если указаны столбцы
имя листа) будет. А, в
проверяете. а не Copy) книги-листы в ту
сделать так чтобы с разными способамиесли туда подставить
= True WB.SaveAs папки с файлами помогает решить проблемы, лист.
= xlSolid End
Trim$(OFName.lpstrFile) Else ShowSave
уже не нужно. чтобы работал из на удаление -’sNewPath — куда фале оно уже
RANлисты выводятся в PDF
же папку, где
из этих 20 сохранения). Честно пытался
строковой массив, в p End Sub With Application.FileDialog(msoFileDialogFolderPicker) If которых без него
Racer021 With Range(«суммНДС»).Select Selection.Copy = «» End Попробуйте, все равно надстройки, нужно так
удалим их сохраняем, если не как бы и
: А чем не с параметрами печати,
лежал исходный файл. листов сохранялись не разобраться с представленными котором будут именаKoGG .Show = False просто-бы не было.: Все равно при Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
If End Functionну не работает?40 ActiveWorkbook.ActiveSheet.CopyIf sRngDelList <>
задано, в текущую
работает. ИМХО. нравится ActiveWorkbook, и настроенными на вкладке
При необходимости сохранения все, а выборочные здесь способами, но
листов этой книги,: Процедура для активного Then Exit SubЭто я к Сохранить Как расширение SkipBlanks _ :=False, и собственно самоAVI
Спасибо. «» Then’sRngDelList — еслиAndreTM как еще можно Разметка страницы (Page в другое место, — в зависимости
знаний маловато. Думаю то будет создана
листа. Кнопку расположишь sFolder = .SelectedItems(1) тому, что с исходного файла меняется Transpose:=False With Selection.Interior сохранение: Manyasha, Запускаю макрос
AVIarDelCol = Split(sRngDelList, надо указываем диапазоны: идентифицировать новую книгу Layout) замените wb.Path на
от условий. К по примеру было новая книга с сам, там где End With sFolder решением проблемы загрузки на .txt .ColorIndex = 2Private Sub CommandButton1_Click() и он предлагает
: Добрый день! » «) столбцов для удаления
Нэ вазражайу (с) до ее сохранения?книга должна быть сохранена свой путь в примеру если ячейка бы проще сообразить копиями этих листов. тебе нужно, и = sFolder & файла из ExcelНе пойму в
.Pattern = xlSolid Dim sFile As выбрать папку. АвтоматическиКак сделать так,For iI =’bDelFurmula — еслиDAKRAYAndreTM на момент экспорта
excelworld.ru
Сохранение текущего листа Excel в отдельный файл
кавычках, например «D:Отчеты2012″ А1=0, то сохраняются что к чему
Т.е. код ниже привяшешь к процедуре:
IIf(Right(sFolder, 1) = обнаружились 2 новые: чем дело End With Range(«суммсНДС»).Select String sFile = имя не подставляет. что бы при 0 To UBound(arDelCol) указано — удаляем: Всем добрый.: В этом методеНужный нам код будет и т.п. листы 2-15, еслиКогда то очень
создает копию этой
Sub Сохранить_лист_в_отдельную_книгу() Prefix Application.PathSeparator, «», Application.PathSeparator)
1. Если вЮрий М Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues,
ShowSave If sFile
а мне бы сохранении файла удалялись
sCol = arDelCol(iI) формулы и ссылкиВ приложении еще (когда копируется один выглядеть следующим образом:Если нужно сохранять файлы А1=1, то листы давно писал что книги со всеми = «C:temp» Suffix ‘отключаем обновление экрана, момент вызова процедуры: При выполнении «Сохранить Operation:=xlNone, SkipBlanks _ <> «» Then хотелось, бы автоматически 5 первых столбцов?ActiveSheet.Range(sCol).Delete’sSubRun — если один простенький вариант лист черезSub SplitSheets5() Dim не в стандартном 2-18, если А1=2, то похожее. Макрос листами, кроме последнего: = «.xls» NewFileName чтобы наши действия Load IE находился Как» исходный файл :=False, Transpose:=False With ActiveWorkbook.ActiveSheet.SaveAs Filename:=sFile, FileFormat:=xlHtml имя похватывалось изИ как приNext iI нужна дополнительная обработка сохранения..Copy s As Worksheet формате книги Excel то лист 19, копируетOption Explicit Option = Prefix & не мелькали Application.ScreenUpdating в автономном режиме остаётся в неприкосновенности. Selection.Interior .ColorIndex = ‘формат html End
ячейки а1. Открывал сохранении можно самостоятельноTRC.INFO «Столбцы удалены — укажим нужнуюИзначальный код мнебез параметров) - For Each s (xlsx), а в если А1=3, товыделенные листы Base 1 Sub Format(Time, «hh-mm-ss») & = False sFiles — файл на На том же 2 .Pattern = If End Subну
первый Ваш файл. называть файл? (» & sRngDelList
процедуру скинул antal10, переделал
никак. Впрочем, я In ActiveWorkbook.Worksheets s.ExportAsFixedFormat
других (xls, xlsm, листы 2-20. Понятно
в новую книгу aa() Dim arSheets$(), Suffix ActiveSheet.Copy Application.DisplayAlerts
= Dir(sFolder & диск грузится из самом месте, со xlSolid End With само собой дляВышеуказанная ошибка пропала
китин & «)»
Function fnSheetsSave(ByVal sSheetName под свои нужды.
же показывал: сразу Filename:=ThisWorkbook.Path & «» xlsb, txt и что слишком замудрено, и удаляет все,
a% ReDim arSheets(Sheets.Count = False ActiveWorkbook.SaveAs «*.xls*») Do While кэша IE. своим расширением и ‘копирование ТН-2 ? .txt FileFormat:=xlText ну сама собой. Не
: правила прочитать иEnd If As String, _
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub SaveSheets_Click() после копирования - & s.Name & т.д.), то кроме но такое возможно что выходит за — 1) For Filename:=NewFileName _ , sFiles <> «»2. Если в прочими атрибутами. ‘ ‘ ‘ и OFName.lpstrFilter = понимаю почему. задать вопрос в
’если указана дополнительнаяOptional ByVal sNewFileNameDim Fname As назначаем ActiveWorkbook объектной «.pdf», Type:=xlTypePDF Next
очевидного изменения расширения или вообще никак? пределы печати. Также a = 1 FileFormat:=xlExcel8, Password:=»», WriteResPassword:=»», ‘открываем книгу Workbooks.Open настройках IE вLightZ ‘ ‘ ‘ «txt (*.txt)» +Manyasha соответствующей теме функция для обработки As String = String переменной. И дальше End Sub на нужное, потребуетсяПро сборку листов из удаляет все скрытые To Sheets.Count - _ ReadOnlyRecommended:=False, CreateBackup:=False sFolder & sFiles Проверке обновлений станиц: Sub SaveTxt() ‘ Sheets(«СчФ (2)»).Select Chr$(0) + «*.txt»:AVI — выполним ее «», _Application.ScreenUpdating = False работаем исключительно сЕсли лень или нет добавить еще и нескольких книг в строки и столбцы 1 arSheets(a) = ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts ‘действия с файлом стоит «автоматически»,Const txt_name = Sheets(«СчФ (2)»).Move Sheets(«СчФ + Chr$(0) тожеAVI: Доброго дня!If sSubRun <>Optional ByVal sNewPathFname = ThisWorkbook.Path ней. времени внедрять все уточнение формата файла одну текущую я в страницах печати. ThisWorkbook.Sheets.Item(a).Name Next ThisWorkbook.Sheets(arSheets).Copy = True End Worksheets(«Месяц»).Activate Sheets(«Месяц»).Copy before:=ThisWorkbook.Sheets(1)то файл грузится «tFile.txt» (2)»).Select Sheets(«СчФ (2)»).Name изменить надо будет., запускаете макрос -
Помогите дополнить макрос, «» Then As String = & «» &
В других же вышеописанное, то можно — параметр уже писал здесь. Есть одна неприятность, End SubP.S. ради Sub Workbooks(«Расчет табелей»).Activate ‘Закрываем только при первомDim wb As = «СчФ» Range(«A1»).Select И так для предлагает выбрать папку взятый из соседнейApplication.Run sSubRun «», _ Sheets(«Sheet1»).Range(«A1»).Value & « случаях — методы воспользоваться готовым макросомFileFormat Теперь разберем решение если удаляемая ячейка интереса проверил. МожноKlim_ul книгу с сохранением вызове Load. При String: wb = SavedName = Application.GetSaveAsFilename(InitialFileName:=»СчФ_» всех интересующих форматов.
CyberForum.ru
Как сохранить лист в txt с помощью макроса
— поле «Имя ветки.TRC.INFO «Функция дополнительнойOptional ByVal sRngDelList » & Range(«B1»).Text возвращают ссылку на
из моей надстройки: обратной задачи: есть объедененная, то теряется подставлять и Integer
: Private Sub CommandButton1_Click() изменений ActiveWorkbook.Close True втором — уже ThisWorkbook.Path & «» & №СФ &Vlanib папки» должно бытьКаким образом внести обработки выполнена («
As String = & «.xls» ‘тут книгу, например: PLEX:ActiveWorkbook.SaveAs wb.Path & одна книга Excel, ее значение.Вот это
массив с номерами Dim FileN$ FileN ‘если поставить False
из кэша. & txt_name «.xls», _ FileFilter:=»Рабочие: пустым или содержать изменения, что бы:
& sSubRun & «», _ название файла состоит200?’200px’:»+(this.scrollHeight+5)+’px’);»>Set NewWB = Workbooks.AddWasilich «» & s.Name которую нужно «разобрать», почти похоже на листов. Эффект будет
= ThisWorkbook.Path & — книга будетМожно конечно изменитьWith ThisWorkbook книги (*.xls),*.xls») If
2 Abu: имя
1) В сохраняемом «)»Optional ByVal bDelFurmula из названия фирмыWasilich: Часто встречал вопрос: & «.xlsb», FileFormat:=50 т.е. сохранить каждый
правду. То что такой же:
«» & Date закрыта без сохранения
настройки IE, но.SaveAs Filename:=wb, FileFormat:=xlTextMSDOS SavedName = FalseGetSaveFileName — из
папки
файл удалялись первый
End If
As Boolean =
и нр. счета
: Андрей, я не — «Как сохранитьДля основных типов файлов лист как отдельный
удаляет все за
Option Explicit Option
& «.xls» ThisWorkbook.Sheets(3).Copy sFiles = Dir он же не
.Close (True)
Then End ActiveWorkbook.SaveAs
planetaexcel.ru
VBA Excel: можно ли сохранить web-страницу в файл htm?
пушки по воробьям!. Нажимаете Ок. 5 столбцов.
’сохраняем файл со False, _
Sheets(Array(«Sheet1», «Sheet2»)).Copy ‘указываем себя имел ввиду. лист в отдельный значения параметра файл для дальнейшего областью печати - Base 1 Sub
ActiveWorkbook.SaveCopyAs FileN ActiveWorkbook.Close Loop ‘возвращаем ранее
только для этой
End With SavedName ActiveWindow.Close Sheets(«СчФ»).SelectИз хэлпа поНа скрине файл2) Можно было всеми изменениямиOptional ByVal sSubRun листы, которые хотим
Ибо данный пример файл?»
FileFormat использования. это не страшно. aa() Dim arSheets%(), SaveChanges:=False MsgBox «Лист отключенное обновление экрана страницы предназначен…End Sub ‘Открытие листа «СчФ» VBA: сохранится в папку при сохранении изменитьActiveWorkbook.SaveCopyAs sFullFileName As String = оставить сделан на моемВот пример сохраненияследующие:Примеров подобного из реальной При сохранении можно a% ReDim arSheets(Sheets.Count № 3 сохранен Application.ScreenUpdating = TrueМожет есть уКазанский Application.ScreenUpdating = TrueК тому же test. Имя файла имя файла.ActiveWorkbook.Close SaveChanges:=False
«») As BooleanSheets(«Sheet1»).Shapes(«SaveSheets»).Delete ‘удаляем ненужные уровне познания VBA. сразу несколько листовXLSX = 51 жизни можно привести указать путь и
— 1) For в новой книге End Sub кого мысли?После каждого: Можно скопировать лист End SubНо как испрошено было - будет браться изManyashaTRC.NOERROR «Новая книгаDim sFullFileName As
кнопки (в моемИ пример по и по одному.XLSM = 52 массу. Например, файл-отчет
имя, и что a = 1 » & FileNОсталось дело за скачивания удаляй кэш в новую книгу в существующую книгу
А метод SaveAs ячейки А1. Если: сохранена (» &
String, arDelCol, iI случае у меня теме может бытьКорректировка и сокращениеXLSB = 50
с листами-филиалами нужно сохраняет значения, а To Sheets.Count - End Sub малым:
так: и сохранять ее: вставить лист «ТН-2″ предложенный тобой сохраняет
не получается, напишитеAVI sFullFileName & «)» As Integer, sCol есть кнопки, которые
не только мой.
CyberForum.ru
Копировать листы из файлов Excel в один файл Excel
макросов приветствуется.XLS = 56
разделить на отдельные не формулы - 1 arSheets(a) =Klim_ul1 Заставить копироватьPrivate Declare Function
Sub bb()
NEtKLiN всю книгу.. в каком месте, здравствуйте.If TRC.IFERROR(«ОШИБКА! Книга As String
должны остаться) Так что, предлагайтеAndreTMTXT = 42 книги по листам, это все то
a Next ThisWorkbook.Sheets(arSheets).Copy: Огромное Всем спасибо!!! все листы из
DeleteUrlCacheEntry Lib «wininet.dll»ActiveSheet.Copy
: Код не мой,Имхо самый оптимальный происходит ошибка иПо первому пункту: не сохранена («Dim strPS AsWith ActiveWorkbook свои варианты.: Я, вроде бы,Полный список всех чтобы передать затем
что надо. Только
End SubИ еще один открывающихся файлов Alias «DeleteUrlCacheEntryA» (ByValActiveWorkbook.SaveAs ThisWorkbook.Path & я только редактировал вариант это копировать какая.200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(Sh.Name).Columns(«a:e»).Delete & sFullFileName & String: strPS =
Application.DisplayAlerts = FalseRAN там и там вариантов можно посмотреть
данные в каждый как бы немногоАпострофф вопрос… Где указать
2 Присвоить имена lpszUrlName As Long) «» & «Имя_файла.txt»,
немного. необходимый лист в
IPS
по второму, если «) %1») Then Application.PathSeparator.SaveAs Filename:=Fname
: как раз и в справке MSDN. филиал и т.д. доработать, чтобы сохранялся: А как можно путь куда будет листам, которые равны As Long xlTextWindowsSub wshSave() Dim новую книгу и: Доброго всем времени имя листа известно, GoTo lEXITfnSheetsSavefnSheetsSave = FalseApplication.ScreenUpdating = TrueWasilic говорил про это.Если вы хотите раскидатьЕсли делать эту процедуру не выделенный лист, скопировать 2 вполне сохраняться файл. В первым 5-6 буквамDeleteUrlCacheEntry «http://yandex.ru»ActiveWorkbook.Close 0 WbMain As Workbook уже её сохранять суток! можно его записатьfnSheetsSave = TrueIf Not fnSheetsIsExist(sSheetName)Application.DisplayAlerts = True, вариант для 1
А корректировка… Ну, по файлам не
вручную, то придется а к примеру определенных листа.
данных примерах у имени копируемого файлаmetro62End Sub
CyberForum.ru
Dim Wb As