私の問題に対する答えを探しているときに、このフォーラムを見つけました。ここに投稿されたソリューションを見つけました:
Excel 2010 ブックの各シートを保存して、マクロを使用して CSV ファイルを分離するにはどうすればよいですか?
その投稿にコメントしなかったことをお詫びしますが、そうするオプションが見つかりませんでした. だから、私はこの質問を投稿しています。
CSVファイルを作成し、一部のシートを除外するだけで、zip機能は使用していません。ご覧のとおり、いくつかの検索/置換機能とデータの更新も行っています。
実行に非常に長い時間 (1-1/2 時間) かかることを除いて、問題なく動作しています。保存機能をなくして、各シートを手動で保存すると、数分で完了します。
何がそれを妨げているのですか?
以下のコード(書式設定が不十分で申し訳ありません)
Sub Worksheet_Macro()
' Category_Trail Macro
' Macro breaks category trail down into individual categories. TO BE USED ONLY IN THE "WORKSHEET" SHEET
'
'
Dim ws As Worksheet
Dim strMain As String
Dim lngCalc As Long
strMain = "C:\Users\David Cox\Documents\TotalOutdoorsman\Site\Inventory\Daily Upload Files\"
' Turn off calculations
With Application
.DisplayAlerts = False
.ScreenUpdating = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
End With
'Update all Data
ActiveWorkbook.RefreshAll
'Copy and Paste Categories and create trail
Sheets("Worksheet").Select
Range("Ah2:Ah20000").Select
Selection.Copy
Range("Ai2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("Ai2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
' Clean_Description Macro
' Macro copies and pastes product descriptions to new column and then cleans them of HTML code.
'
'
Range("AO2:AO20000").Select
Selection.Copy
Range("AP2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("AP:AP").Select
Selection.Replace What:="<br>", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="</br>", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' Remove Appostrophies Macro
Sheets("RSR Inventory").Select
Columns("L:L").Select
Range("L5743").Activate
Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Sheets("Valor Inventory").Select
ActiveWindow.LargeScroll ToRight:=-1
Columns("C:C").Select
Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' Go back to Main Product Page
Sheets("MainProductPage").Select
'Turn Calculations back on
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = lngCalc
End With
'Save before creating CSV Files
ThisWorkbook.Save
' Turn off calculations
With Application
.DisplayAlerts = False
.ScreenUpdating = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
End With
'Save all CSV files
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "Imported Product Data", "Sheet 2", "Sheet 3"
'do nothing for these sheets
Case Else
ws.SaveAs strMain & ws.Name, xlCSV
End Select
Next
'Turn Calculations back on
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = lngCalc
End With
End Sub