Ошибка выполнения 1004 Документ не сохранен при попытке сохранить файл с датой в имени файла

Итак, у меня есть макрос, который отлично работает, как показано ниже. Он проходит через раскрывающийся список проверки данных и сохраняет PDF-файл для каждой страны в раскрывающемся списке. Однако, когда я пытаюсь отредактировать макрос, чтобы имя файла включало дату в дополнение к названию страны (D14), я сталкиваюсь с ошибкой выполнения 1004 Документ не может быть сохранен. Я очень новичок в VBA, поэтому понятия не имею, как это решить... Буду очень признателен за помощь.

Стеф

Sub Create_PDFs()
'
' Create_PDFS Macro
'
' Keyboard Shortcut: Ctrl+y
'
Const sheetToExportName = "Graphs"
Const sheetWithCountryList = "Master Sheet"
Const CountryListAddress = "AQ6:AQ38"
Const chosenCountryCell = "D14"
Const sheetWithChosenCell = "Graphs"

Dim CountryList As Range
Dim anyCountry As Range

Set CountryList = _
ThisWorkbook.Worksheets(sheetWithCountryList). _
Range(CountryListAddress)
For Each anyCountry In CountryList
ThisWorkbook.Worksheets(sheetWithChosenCell). _
Range(chosenCountryCell) = anyCountry
ThisWorkbook.Worksheets(sheetToExportName).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "N:\International Finance Division\RAT Advanced Economies - Chartpacks\Country Risks\Created PDFs\" & ActiveSheet.Range("D14").Value & " - Country Risk Indicators.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
        Next
        Set CountryList = Nothing
End Sub

person user1610138    schedule 19.08.2012    source источник
comment
Содержит ли значение D14 дату с символом /? Если это так, имя файла не должно содержать специальных символов, таких как :, / и т. д.   -  person shahkalpeshp    schedule 19.08.2012


Ответы (1)


Очистите значение вашей даты от специальных символов.

Предполагая, что диапазон всегда будет датой, замените:

ActiveSheet.Range("D14").Value

с чем-то вроде этого:

format(ActiveSheet.Range("D14").Value,"YYYYMMDD")

Не стесняйтесь использовать формат, отличный от "YYYYMMDD", но убедитесь, что вы не используете «/», как указано в комментарии shahkalpesh.

person Daniel    schedule 19.08.2012