Всем привет!. Пытаюсь срастить два макроса что бы они выполнялись без дополнительного вызова. Первый макрос вызывает окно выбора папки где находятся нужные файлы и если в этой папке находятся файлы *.xls то пересохраняет их как *.xlsm.
[vba]Код
Sub x()
Dim strFolder As String, strFileName As String
Dim strNewFolder As String, strNewFileName As String
Dim wb As Workbook
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
If .Show = 0 Then
Exit Sub
End If
strFolder = .SelectedItems(1)
End With
.....
end sub
[/vba]
второй тоже запрашивает нужную папку для дальнейшей работы с файлами
[vba]Код
Sub CheckAllFiles()
Dim BazaWb As Workbook
Dim iTempWb As Workbook
Dim iTempFileName As String
Dim iPath As String
Dim iNumFiles As Long
Dim iWrongFiles As Long
Dim iRightFiles As Long
Dim sFolder As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.Calculation = xlManual
Set BazaWb = ThisWorkbook
iPath = BazaWb.Path & "\"
With .FileDialog(msoFileDialogFolderPicker)
.Title = "Выберете папку"
.InitialFileName = iPath
If .Show = False Then Exit Sub
iPath = .SelectedItems(1)
End With
iPath = iPath & IIf(Right(iPath, 1) = Application.PathSeparator, "", Application.PathSeparator)
....
end sub
[/vba]
пытаюсь соеденить так:
[vba]Код
Sub CheckAllFiles()
x
Dim BazaWb As Workbook
Dim iTempWb As Workbook
Dim iTempFileName As String
Dim iPath As String
Dim iNumFiles As Long
Dim iWrongFiles As Long
Dim iRightFiles As Long '
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.Calculation = xlManual
Set BazaWb = ThisWorkbook
iPath = strFolder
iPath = iPath & IIf(Right(iPath, 1) = Application.PathSeparator, "", Application.PathSeparator)
....
end sub
[/vba]
в результате значение переменной iPath = strFolder Empty , т.е. из первого макроса strFolder переменная не передается. Как мне выкрутиться. соединить в один боюсь не осилю и запутаюсь.
Подскажите пожалуйста.