Как я могу удалить ws.name - PullRequest
0 голосов
/ 16 октября 2018

Я пытался создать PDF-файл, используя следующий скрипт, он работает, но когда я удаляю ws.Name, скрипт ломается.

Sub createPDFfiles()
    Dim ws As Worksheet
    Dim strName As String
    For Each ws In ActiveWorkbook.Worksheets
        On Error Resume Next 'Continue if an error occurs

        ' Name PDF files based on the worksheet Index (e.g Annex 1.1.1, Annex 1.1.2, etc.)
        strName = Range("A10").Text & " " & Range("C7").Text & ws.Name


        ' If you want to name the PDF files differently just change the Fname variable above to
        ' whatever you like. For example if you changed Fname to:
        '
        '  Fname =  "C:\myFolder\pdfs\" & ActiveWorkbook.Name & "-" & ws.Name
        '
        '  The files would be stored in C:\myFolder\pdfs, and named using the
        ' spreadsheet file name and the worksheet name.
        '
        ' WARNING: Using worksheet names may cause errors if the  names contain characters that Windows
        ' does not accept in file names. See below for a list of characters that you need to avoid.
        '
        ws.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=strName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
    Next ws
End Sub

Как я могу удалить это ws.Name и по-прежнему работать?

1 Ответ

0 голосов
/ 16 октября 2018

Ваши Range объекты не определены в этом утверждении:

 strName = Range("A10").Text & " " & Range("C7").Text & ws.Name

Таким образом, они ссылаются на эти ячейки на активном листе, а не на листе ws.

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

 strName = ws.Range("A10").Text & " " & ws.Range("C7").Text

Возможно, вы захотите проверить, что strName не равно NULL, прежде чем пытаться сохранить PDF.

Я бы также рекомендовал потерять строку On Error Resume Next и правильно обрабатывать ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...