Сохранить дату из ячейки G18 в имя файла

Sub SaveWithWEDate()
    
    Dim fileName As String
    Dim WEdate As String
    WEdate = G18
    
    fileName = "WE " & WEdate & " WEEKLY SUMMARY"
    
    ThisWorkbook.SaveAs fileName:=fileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    
End Sub

Я не могу вставить текст из ячейки G18 в имя файла. Он сохраняется как «Еженедельный обзор WE».

Я также попробовал использовать номер ячейки в текстовой строке.

Я использую это, чтобы сохранить шаблон в книге Excel с поддержкой макросов.
Я использовал это раньше с фактической датой, но мой лист рассчитывает дату окончания недели как воскресенье.
Я скопировал дату воскресенья во вспомогательную ячейку G18 в формате ячейки ГГГГММДД.

WEdate = ActiveSheet.Range("G18").Text
Spectral Instance 08.04.2024 23:58

@SpectralInstance Проблема с использованием .Text заключается в том, что если ваш столбец слишком узкий и отображается ######, то возвращается именно это. Лучше использовать .Value, .Value2 или просто оставить .Range("G18"). В чем разница между .text, .value и .value2?

Darren Bartrup-Cook 10.04.2024 10:58
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Базовое значение вашего вспомогательного столбца по-прежнему представляет собой числовую дату, отформатированную для отображения «ГГГГММДД». Чтение значения TEXT ячейки может вернуть ######.

Считайте значение в процедуру как дату и отформатируйте его в коде, чтобы его можно было использовать в имени файла.

Sub SaveWithWEDate()

Dim fileName As String
Dim WEdate As Date
WEdate = ThisWorkbook.Worksheets("Sheet1").Range("G18").Value2

fileName = "WE " & Format(WEdate, "YYYYMMDD") & " WEEKLY SUMMARY"

ThisWorkbook.SaveAs fileName:=fileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled

End Sub

Работает отлично. Я узнал.

Christopher 11.04.2024 21:17

Другие вопросы по теме