Макрос VBA для сохранения копии определенных ячеек в новой книге

#excel #vba

Вопрос:

У меня есть диапазон значений от A2 до B6, и я хочу сохранить эти ячейки в новой книге. Папка назначения находится в (C:) и имеет имя «Продукты», поэтому новая книга должна находиться внутри этой папки.

Кроме того, в качестве плюса было бы удивительно, если бы перед сохранением файла макрос мог спросить меня через поле ввода, какое имя файла я хочу дать новому файлу excel.

Ответ №1:

Что-то вроде этого сделало бы работу:

 Sub CopyToNewWb()

Dim wb As Workbook
Dim wb_New As Workbook

Set wb = ThisWorkbook
Dim wbstring As String
Dim input_file_name As String

input_file_name = InputBox("Enter file name", "Enter new workbook file name") 'Create input box

wbstring = "C:Products" 'Set workbook path
Workbooks.Add.SaveAs Filename:=wbstring amp; input_file_name amp; ".xls", FileFormat:=56 'I would add date here if user enters the same name twice...

Set wb_New = ActiveWorkbook

wb_New.Worksheets("Sheet1").Range("A2:B6").Value = wb.Worksheets("Sheet1").Range("A2:B6").Value 'Copy Range from wb to new workbook

End Sub
 

Для получения различных номеров форматов файлов, пожалуйста, перейдите по ссылке:
https://docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat

Имя Ценность Описание Расширение
xlCSV 6 CSV *.csv
xlExcel8 56 Рабочая тетрадь Excel 97-2003 *.xls
xlExcel9795 43 Excel версии 95 и 97 *.xls

Комментарии:

1. Эй, заранее спасибо за ответ. По какой-то причине код создает конфликт в этой строке: Workbooks.Add.SaveAs Имя файла:=wbstring amp; имя_файла ввода amp; «.xlsx»

2. Я думаю, что пропустил последнее «» на пути. Вы также получите сообщение об ошибке, если у вас уже есть файл с точным именем или если он открыт. Я предполагаю, что у вас есть разрешение на сохранение в папке.

3. Это работает идеально. Спасибо тебе, Вижи.

4. Нп! См.Обновленный ответ. Я также изменил расширение файла на .xls . Если вы измените свой рабочий лист на новый необычный цвет и сохраните его, вы получите уведомление о том, что этот цвет не поддерживается.

5. Еще раз отлично работает. Огромное спасибо.