Как я могу назвать таблицу автоматически, ссылаясь на две ячейки?
Я только что закончил писать spiffy macro для автоматического создания отчетов. Он работает хорошо, но мне нужно, чтобы он автоматически определял электронную таблицу в соответствии с данными в двух ячейках.
По существу, этот макрос создает новую электронную таблицу, копирует ей информацию и создает соответствующие сводные таблицы, которые требуются ежемесячно.
В рамках этого я создал панель для создания отчета с инструкциями и диапазон дат, к которому должен относиться отчет. В настоящее время создается таблица « NEW REPORT ». Есть ли способ создать новую электронную таблицу и называть ее чем-то вроде строки «Отчет 01.01.15 до 01.02.15» автоматически?
- Индикатор выполнения в VBA Excel
- Excel VBA - преобразовать текст в дату?
- Использование VBA в Excel в Google Search в IE и возврат гиперссылки первого результата
- скрытие формул в строке формул
- Vlookup для копирования цвета ячейки - Excel VBA
У меня есть диапазон дат как две отдельные ячейки, и я знаю, что мне нужно будет убедиться, что диапазон дат – это тот, который будет использовать допустимые символы (IE 01.01.15, а не 01/01/15) – я правильно сказать, что есть способ сообщить пользователю, что они ввели даты с неправильными разделителями?
- Приложение Excel VBA автоматически останавливается с сообщением «Выполнение кода приостановлено»
- Странный остаток на ячейке с проверкой данных при использовании Excel VBA
- Как объявить глобальную переменную в VBA?
- Как я могу конкатенировать строки в VBA?
- Использование UDF в Excel для обновления рабочего листа
- Как добавить именованный лист в конце всех листов Excel
- Как вы снимаете защиту макросов VBA для книги с поддержкой макросов, если вы забыли пароль?
- VBA: Различия в двух способах объявления нового объекта? (Попытка понять, почему мое решение работает)
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