Как я могу назвать таблицу автоматически, ссылаясь на две ячейки?

Я только что закончил писать spiffy macro для автоматического создания отчетов. Он работает хорошо, но мне нужно, чтобы он автоматически определял электронную таблицу в соответствии с данными в двух ячейках.

По существу, этот макрос создает новую электронную таблицу, копирует ей информацию и создает соответствующие сводные таблицы, которые требуются ежемесячно.

В рамках этого я создал панель для создания отчета с инструкциями и диапазон дат, к которому должен относиться отчет. В настоящее время создается таблица « NEW REPORT ». Есть ли способ создать новую электронную таблицу и называть ее чем-то вроде строки «Отчет 01.01.15 до 01.02.15» автоматически?

У меня есть диапазон дат как две отдельные ячейки, и я знаю, что мне нужно будет убедиться, что диапазон дат – это тот, который будет использовать допустимые символы (IE 01.01.15, а не 01/01/15) – я правильно сказать, что есть способ сообщить пользователю, что они ввели даты с неправильными разделителями?

 Option Explicit Sub SaveAs() Dim FileName As String Dim FilePath As String Dim FName As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text FName = Sheets("Sheet1").Range("B1").Text ThisWorkbook.SaveAs FileName:=FilePath & "\" & FileName & FName End Sub 

Чтобы сохранить его на сегодняшней дате

 Dim sSave As String sSave = "Reports " & Format(Date, "dd-mm-yyyy") 

Или завтра Дата

 "Reports" & Format(Date + 1, "dd-mm-yyyy") 

Формат файла См. Примеры

 ThisWorkbook.SaveAs Filename:=FilePath, fileformat:=52 

Это основные форматы файлов в Excel 2007-2013

 51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx) 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm) 50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb) 56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls) *Or maybe you want to save the one worksheet workbook to csv, txt or prn.* ".csv": FileFormatNum = 6 ".txt": FileFormatNum = -4158 ".prn": FileFormatNum = 36 

Чтобы сохранить только один лист в качестве новой рабочей книги, вам необходимо скопировать лист перед сохранением

 Option Explicit Sub SaveAs() Dim Sht As Worksheet Dim FileName As String Dim FilePath As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text Set Sht = ActiveWorkbook.Sheets("Sheet1") Sht.Copy ActiveWorkbook.SaveAs FileName:=FilePath & "\" & FileName End Sub 

Чтобы сохранить несколько листов в качестве новой рабочей книги, используйте Sheets(Array("Sheet1", "Sheet2")).Copy

 Option Explicit Sub SaveAs() Dim Sht As Worksheet Dim Book As Workbook Dim FileName As String Dim FilePath As String FilePath = "C:\Temp" FileName = Sheets("Sheet1").Range("A1").Text Set Book = ActiveWorkbook With Book .Sheets(Array("Sheet1", "Sheet2")).Copy End With ActiveWorkbook.SaveAs FileName:=FilePath & "\" & FileName End Sub 

  • Различие между использованием .text и .value в VBA Access
  • Как удалить или изменить фон заполняет все таблицы в документе Microsoft Word
  • Текст HTML с тегами для форматированного текста в ячейке Excel
  • Как автоматически вставить пустую строку после группы данных
  • Как добавить подпись по умолчанию в Outlook
  • Правильное обращение с ошибками в VBA (Excel)
  • Загрузка добавлений при программном программировании Excel
  • Сохранение листа Excel в CSV-файлах с именем файла + имя листа с использованием VB
  • Как получить старое значение измененной ячейки в Excel VBA?
  • Выполните команду в командной строке с помощью excel VBA
  • Как отправить запрос HTTP POST на сервер из Excel с помощью VBA?
  • Давайте будем гением компьютера.