UPDATE: Switched ActiveWorkSheet zu Active und scheint Objekt erforderlich Fehler zu beheben, aber jetzt im diesen Fehler:Objekt erforderlich Fehler: Speichern Datei
'calendar2016-04-23.csv' cannot be accessed.
The file may be read-only, or you may be trying to access a read-only location. Or, the server the document is stored on may not be responding.
Dann diesen Fehler nach dem Abbrechen:
Run-time error '1004':
SaveAs method of Worksheet class failed
Problem mit dem Speichern aktiver Arbeitsblätter in Excel. Ich versuche, 2 Blätter in 2 verschiedene CSV-Dateien zu speichern. Aber ich laufe in 2 Hauptprobleme
1: Object required error when it gets to the save portion.
2: It transfers to the new (failed) save file
Ich möchte beide in separate CSV-Dateien exportieren, aber in der Quelldatei bleiben.
Mein ganzer Code ist
Sub prep()
'
' prep Macro
'
'
Columns("G:G").Select
ActiveWorkbook.Worksheets("1Input").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("1Input").Sort.SortFields.Add Key:=Range("G1"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("1Input").Sort
.SetRange Range("A2:O9995")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("D:D").Select
ExecuteExcel4Macro _
"FORMULA.REPLACE("":00 GMT"","""",2,1,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE)"
Columns("I:I").Select
ExecuteExcel4Macro _
"FORMULA.REPLACE(""(booster)"",""."",2,1,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE)"
Columns("N:N").Select
ExecuteExcel4Macro _
"FORMULA.REPLACE("" (A)"","""",2,1,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE)"
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("K:K").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("M:M").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("M2").Select
ActiveCell.FormulaR1C1 = "=left"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-10],16)"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-11],5)"
Range("M2:N2").Select
Selection.AutoFill Destination:=Range("M2:N1000"), Type:=xlFillDefault
Range("M2:N164").Select
Columns("B:B").Select
ActiveWorkbook.Worksheets("1Input").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("1Input").Sort.SortFields.Add Key:=Range("B1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Range("O1").Select
ActiveCell.FormulaR1C1 = "Subject"
Range("P1").Select
ActiveCell.FormulaR1C1 = "Start Date"
Range("R1").Select
ActiveCell.FormulaR1C1 = "Arrive By"
Range("Q1").Select
ActiveCell.FormulaR1C1 = "Start Time"
Range("S1").Select
ActiveCell.FormulaR1C1 = "Description"
Range("U1").Select
ActiveCell.FormulaR1C1 = "Driver First Name"
Range("T1").Select
ActiveCell.FormulaR1C1 = "End Time"
Range("R2").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-16],5)"
Range("O2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK(RC[-10]),"""",CONCATENATE(""Text: "",RC[-3],"" ::::: "",RC[4]))"
Range("P2").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("Q2").Select
ActiveCell.FormulaR1C1 = "=RC[-3]-""1:05"""
Range("R2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]-""0:05"""
Range("T2").Select
ActiveCell.FormulaR1C1 = "=RC[-3]-""00:55"""
Range("U2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-9],FIND("" "",RC[-9]&"" "")-1)"
'
Columns("O:O").Select
Selection.NumberFormat = "m/d/yy"
Range("N2:T2").Select
Selection.AutoFill Destination:=Range("N2: T10000"), Type:=xlFillDefault
Range("N2:Z10000").Select
Columns("A:Z").EntireColumn.AutoFit
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'
Range("R2").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(""Hi "",RC[2],"", Please arrive by "",TEXT(RC[-1],""hh:mm AM/PM""),"" for your next ride. Thank you."")"
Range("R2").Select
Selection.AutoFill Destination:=Range("R2:R10000"), Type:=xlFillDefault
Range("T2").Select
Selection.AutoFill Destination:=Range("T2:T10000"), Type:=xlFillDefault
Columns("I:J").Select
Selection.Delete Shift:=xlToLeft
Columns("L:L").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
ExecuteExcel4Macro "PATTERNS(1,0,10,TRUE,2,4,0,0)"
Range("O:O").Activate
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Columns("P:P").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Columns("R:R").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Rows("1:2").Select
Selection.Font.Bold = False
Selection.Font.Bold = True
Columns("M:S").Select
Selection.Cut
Sheets("CSV Export").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("CSV Export").Select
ActiveWorkSheet.SaveAs _
Filename:="/Users/Max/Desktop/Rides/Exported/calendar" _
& Format(Date, "yyyy-mm-dd") & ".csv", _
FileFormat:=xlCSVWindows
Columns("A:G").Select
Selection.Delete Shift:=xlToLeft
Sheets("1Input").Select
ActiveWorkSheet.SaveAs Filename:= _
"/Users/Max/Desktop/Rides /Exported/rides.csv", FileFormat:=xlCSVWindows, _
CreateBackup:=False
Cells.Select
Selection.Delete Shift:=xlUp
End Sub
Und im den Fehler bekommen (unten am Boden des Code hier):
Sheets("CSV Export").Select
ActiveWorkSheet.SaveAs _
Filename:="/Users/Max/Desktop/Rides/Exported/calendar" _
& Format(Date, "yyyy-mm-dd") & ".csv", _
FileFormat:=xlCSVWindows
Und wo im sowohl für den Code zu üben ist:
Sheets("CSV Export").Select
ActiveWorkSheet.SaveAs _
Filename:="/Users/Max/Desktop/Rides/Exported/calendar" _
& Format(Date, "yyyy-mm-dd") & ".csv", _
FileFormat:=xlCSVWindows
Columns("A:G").Select
Selection.Delete Shift:=xlToLeft
Sheets("1Input").Select
ActiveWorkSheet.SaveAs Filename:= _
"/Users/Max/Desktop/Rides /Exported/rides.csv", FileFormat:=xlCSVWindows, _
CreateBackup:=False
Vielen Dank im Voraus!
Sie ein Linux-System mit Hilfe von Excel laufen oder speichern Sie auf eine Website? Ich frage mich nur, weil Sie '/' im Pfad und nicht '\' verwenden. Außerdem beginnt Ihr Pfad nicht mit einem Laufwerksbuchstaben wie 'C:' oder 'E:' oder 'H:' .... Sie können den Pfad mit 'Dir' validieren: 'If Dir ("/Benutzer/Max/Desktop/Rides/Exportiert/Kalender/") = vbNullString Dann MsgBox" Dieser Pfad existiert nicht! "' – Ralph
Im Verwenden eines Mac. Als ich das erste Makro aufgenommen habe, ist es so, wie ich es gezeigt habe, also lief ich damit. –