
[![黄色のシートはエクスポート時に無視します。Ws.rows コマンドは最初の 10 行を削除しますが、VBA スクリプトはすべてのシートを CSV としてエクスポートします。これは望ましくありません。すべてのシートにデータが含まれています。スプレッドシートを添付しました。最初のページはインデックスで、下にシートが表示されます。
Sub ExportCSV()
Application.DisplayAlerts = False
ActiveWorkbook.Save
Dim ws As Worksheet
Dim path As String
path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In ActiveWorkbook.Worksheets
ws.Rows("1:10").Delete
If ws.Name <> "Document Control" And ws.Name <> "Index sheet" Then
'With ws
ws.SaveAs filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
'End With
End If
Next ws
Application.DisplayAlerts = True
End Sub
答え1
シートの一部だけを保存することはできません。エクスポートする前に、不要な範囲を削除する必要があります。
元のワークブックを保存しているので、データが失われることはありません。
ws.Rows("1:10").Delete