Экспорт листов Excel в формате .txt - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь экспортировать листы в документ Excel в виде текстовых файлов. По сути, я получаю выходной путь к файлу от пользователя, пропускаю первый лист, а затем сохраняю все оставшиеся листы Excel в виде файлов .txt. Я получаю следующую ошибку при запуске: «Ошибка во время выполнения« 1004 »: ошибка, определяемая приложением или определенная для возражения». Кажется, эта ошибка является результатом команды ActiveSheet.SaveAs.

Любая помощь будет оценена. Заранее спасибо.

Sub exportSheets()
    Dim ws As Worksheet
    Dim sheetName, filePath As String

    'get filepath from user input 
    filePath = Range("E6").Value

    'ask if the user is sure about exporting 
    answer = MsgBox("Export all Worksheets to text files?", vbYesNo, "Run Macro")

    If answer = vbYes Then
        'loop through every sheet in the work book
        For Each ws In ThisWorkbook.Worksheets

            'skip the first page in the excel workbook
            If ws.Index > 1 Then
                sheetName = ws.Name 'get the sheet name

                'save the active sheet
                ActiveSheet.SaveAs fileName:=filePath & "\" & sheetName & ".txt", FileFormat:=xlText, CreateBackup:=False
            End If
        Next
    End If

End Sub

1 Ответ

1 голос
/ 24 марта 2020

Исправление для вашего кода выше

Option Explicit

Sub exportSheets()
    Dim ws As Worksheet
    Dim filePath As String

    'get filepath from user input
    filePath = Range("E6").Value

    Dim answer As Variant

    'ask if the user is sure about exporting
    answer = MsgBox("Export all Worksheets to text files?", vbYesNo, "Run Macro")

    If answer = vbYes Then

        ' Turn off alerts. Be aware that will overwrite existing file without warning
        Application.DisplayAlerts = False

        'loop through every sheet in the work book
        For Each ws In ThisWorkbook.Worksheets

            With ws
                'skip the first page in the excel workbook
                If .Index > 1 Then
                    .SaveAs Filename:=filePath & "\" & .Name & ".txt", FileFormat:=xlTextMSDOS, CreateBackup:=False
                End If
            End With

        Next

        Application.DisplayAlerts = True

    End If

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