#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. Еще раз отлично работает. Огромное спасибо.