У меня есть отдельная подпрограмма, которая сохраняет последний файл в моем массиве, но он все равно не работает, когда я переопределяю переменные в этой второй подпрограмме. Как я могу реализовать переменные во втором подпрограмме, чтобы сохранить окончательный вырез файла в его подпапке?
Sub SaveCopy(Wb As Workbook, Last)
Wb.SaveCopyAs strNewPath & _
ValidFileName(Last & " - Shift Differential Roster_New Hire.xlsx")
End Sub
получаю ошибку в переменной strNewPath
, но она определена выше в верхней части скрипта?
Option Explicit
Sub Main()
Dim Wb As Workbook
Dim Data, Last
Dim i As Long, j As Long, k As Long, a As Long
Dim Dest As Range
Dim BASEPATH As String, strNewPath As String, strFileName As String
Dim strHRBP As String
Dim strEC As String
Dim colEC As Long
colEC = 1
Dim colHRBP As Long
colHRBP = 3
Set Wb = Workbooks("JNav Template.xlsx")
Set Dest = Wb.Sheets("New Hires_Internal&External").Range("A2")
With ThisWorkbook.Sheets("Cuts")
Data = .Range("L2", .Range("A" & Rows.Count).End(xlUp))
End With
Wb.Activate
BASEPATH = "C:\Users\pp87255\Desktop\JNav Rest\"
Application.ScreenUpdating = False
For i = 1 To UBound(Data)
If Data(i, 4) <> Last Then
If i > 1 Then
Dest.Select
With Wb.Worksheets("New Hires_Internal&External")
.Cells.EntireColumn.AutoFit
End With
strNewPath = BASEPATH & strEC & "\"
If Len(Dir(strNewPath, vbDirectory)) = 0 Then
MkDir strNewPath
End If
strNewPath = strNewPath & strHRBP & "\"
If Len(Dir(strNewPath, vbDirectory)) = 0 Then
MkDir strNewPath
End If
Wb.SaveCopyAs strNewPath & _
ValidFileName(Last & " - Shift Differential Roster_New Hire.xlsx")
End If
With Wb.Sheets("New Hires_Internal&External")
.Rows(2 & ":" & .Rows.Count).ClearContents
End With
strEC = Data(i, 1)
strHRBP = Data(i, 3)
Last = Data(i, 4)
j = 0
End If
a = 0
For k = 1 To UBound(Data, 2)
Dest.Offset(j, a) = Data(i, k)
a = a + 1
Next
j = j + 1
Next
SaveCopy Wb, Last '<< save the last report
End Sub
Sub SaveCopy(Wb As Workbook, Last)
Wb.SaveCopyAs strNewPath & _
ValidFileName(Last & " - Shift Differential Roster_New Hire.xlsx")
End Sub