Trying to save a specific sheet but, VBA is saving other sheets that do not contain the explicitly provided sheet-name. It's supposed to save Sheet-3 (REPORT) but, instead saves Sheet-2 (Instructions).
Sheets found are below:
- SYS
- Instructions
- REPORT
- FILE
- CHECK
- CAMP
- CF
- AT
- RG
- NS
- OD
Code in question:
Worksheets("REPORT").SaveAs FileName:=PathName & SaveName & "REPORT.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & "_Report", 31)).Name = "REPORT"
Code is below:
Option Explicit
Sub ACE_MACRO()
Application.DisplayAlerts = False
Dim SaveName As String
Dim PathName As String
Dim CampName As String
Dim Campaign As Integer
SaveName = Right(Date, 2) & Left(Date, 2) & Mid(Date, 4, 2) & Mid(ThisWorkbook.Name, 6, 3) & "_"
PathName = ThisWorkbook.Path & Application.PathSeparator
If 10000 - Application.WorksheetFunction.CountIf(Worksheets("FILE").Range("A2:A10001"), "") = 0 Then
MsgBox "FILE-sheet is empty. Please add data and try again."
Exit Sub
End If
Worksheets("REPORT").SaveAs FileName:=PathName & SaveName & "REPORT.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & "_Report", 31)).Name = "REPORT"
Worksheets("CAMP").Activate
Application.Goto Range("A1")
For Campaign = 1 To (10000 - Application.WorksheetFunction.CountIf(Worksheets("CAMP").Range("B2:B10001"), ""))
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = True
CampName = Replace(ActiveCell.Offset(0, 1).Value, " ", "-") & "_"
If (10000 - Application.WorksheetFunction.CountIf(Worksheets("CF").Range("K2:K10001"), "")) = 0 Then
Else: Worksheets("CF").SaveAs FileName:=PathName & SaveName & CampName & "CF.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & CampName & "CF", 31)).Name = "CF"
End If
If (10000 - Application.WorksheetFunction.CountIf(Worksheets("AT").Range("K2:K10001"), "")) = 0 Then
Else: Worksheets("AT").SaveAs FileName:=PathName & SaveName & CampName & "AT.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & CampName & "AT", 31)).Name = "AT"
End If
If (10000 - Application.WorksheetFunction.CountIf(Worksheets("RG").Range("K2:K10001"), "")) = 0 Then
Else: Worksheets("RG").SaveAs FileName:=PathName & SaveName & CampName & "RG.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & CampName & "RG", 31)).Name = "RG"
End If
If (10000 - Application.WorksheetFunction.CountIf(Worksheets("NS").Range("K2:K10001"), "")) = 0 Then
Else: Worksheets("NS").SaveAs FileName:=PathName & SaveName & CampName & "NS.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & CampName & "NS", 31)).Name = "NS"
End If
If (10000 - Application.WorksheetFunction.CountIf(Worksheets("OD").Range("K2:K10001"), "")) = 0 Then
Else: Worksheets("OD").SaveAs FileName:=PathName & SaveName & CampName & "OD.csv", FileFormat:=6, CreateBackup:=False
Worksheets(Left(SaveName & CampName & "OD", 31)).Name = "OD"
End If
Worksheets("CAMP").Activate
ActiveCell.ClearContents
Next Campaign
Worksheets("CHECK").Range("B2:B10001,E2:E10001,H2:H10001,K2:K10001").ClearContents
Worksheets("FILE").Range("A1:ZZ10001").Clear
Worksheets("Instructions").Activate
ActiveWorkbook.SaveAs FileName:=PathName & "ACEM_" & Mid(ThisWorkbook.Name, 7, 3) & ".xlsm", FileFormat:=52, CreateBackup:=False
MsgBox "Process complete and closing workbook. Have a good day :)"
ActiveWorkbook.Close
End Sub
End If` which is confusing. If you want the negative case, I suggest changing the expression or using the `Not` keyword. And removing the `Else` from the structure.