0

Excel を CSV ファイルに変換する際に問題があります。私の使用例は、各ワークブック シートを csv ファイルに変換し、1 つのファイルに圧縮するマクロを作成することです。私のコードは次のようになります 'OriginalWorkbook.Activate' シートの数については、それぞれを独自の CSV ファイルに変換します

For Counter = SHCOUNT + 1 To Sheets.Count

     'Export as CSV to the root folder
     Set wks = ActiveWorkbook.Worksheets(Counter)
     wks.Copy 'to a new workbook
     Set newWks = ActiveSheet
     With newWks
        fileSaveName = Application.GetSaveAsFilename(newWks.Name, _
        fileFilter:="CSV Files (*.csv), *.csv")
        'ActiveWorkbook.SaveAs (fileSaveName)
        .SaveAs Filename:=fileSaveName, FileFormat:=xlCSV
        ZipNAme = newWks.Name
        If fileSaveName <> False Then
            'newWks.Delete
            'MsgBox "Save as " & fileSaveName
        End If

        .Parent.Close Savechanges:=False
    End With

    ''Add the created CSV file to the ZIP file
    Set oapp = CreateObject("Shell.Application")
    oapp.Namespace(FolderName).CopyHere fileSaveName

Next Counter

しかし、今、私はこのコードの問題に直面しています.Excelに約20枚のシートがあり、各シートに対してWindowsのsaveasポップアップが表示され、20回クリックして保存して、このすべてを完了させます.

私はVBでのコーディングに非常に慣れていません。誰でもこれで私を助けることができますか? 事前にファイル名を指定しているため、ポップアップとして保存せずに先に進む必要があります。

ありがとう、B1

4

1 に答える 1

0
    Sub exportcsv()
Dim ws As Worksheet
Dim path As String

path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close False
Next
End Sub

これが役に立てば幸いです。うまくいくとは限りませんが、物事を正しい道に導くための代替手段です。私自身もVBAは初めてです:)

于 2016-07-10T21:41:15.313 に答える