'задаем путь к входящим БДР Dim myPath As String myPath = GetFolderPath 'Задаем часть имени файла - номер месяца Dim Month As String Month = Application.InputBox("Введите номер месяца", Type:=2) 'Задаем имя отчета о префакте Dim BDR_f As Excel.Workbook Set BDR_f = ThisWorkbook
'*********************************** 'Вставляем БДР АСК Dim filenameASK As String filenameASK = myPath + "\" + Month + "_БДР_f_АСК.xlsx"
n = n + 1 / 2: p = 2 * n Application.StatusBar = "Выполнено: " & n * 100 & "% " & String(p, ChrW(8700)): DoEvents
Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True End Sub
Function GetFolderPath(Optional ByVal title As String = "Выберите папку", Optional ByVal initialPath As String = "c:\1\") As String Dim PS As String: PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) If Not Right(initialPath, 1) = PS Then initialPath = initialPath & PS .ButtonName = "Выбрать": .title = title: .InitialFileName = initialPath If .Show <> -1 Then Exit Function GetFolderPath = .SelectedItems(1) If Not Right(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function
[/vba]
Ругается: "Compile error: Variable not defined" [vba]
'задаем путь к входящим БДР Dim myPath As String myPath = GetFolderPath 'Задаем часть имени файла - номер месяца Dim Month As String Month = Application.InputBox("Введите номер месяца", Type:=2) 'Задаем имя отчета о префакте Dim BDR_f As Excel.Workbook Set BDR_f = ThisWorkbook
'*********************************** 'Вставляем БДР АСК Dim filenameASK As String filenameASK = myPath + "\" + Month + "_БДР_f_АСК.xlsx"
n = n + 1 / 2: p = 2 * n Application.StatusBar = "Выполнено: " & n * 100 & "% " & String(p, ChrW(8700)): DoEvents
Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True End Sub
Function GetFolderPath(Optional ByVal title As String = "Выберите папку", Optional ByVal initialPath As String = "c:\1\") As String Dim PS As String: PS = Application.PathSeparator With Application.FileDialog(msoFileDialogFolderPicker) If Not Right(initialPath, 1) = PS Then initialPath = initialPath & PS .ButtonName = "Выбрать": .title = title: .InitialFileName = initialPath If .Show <> -1 Then Exit Function GetFolderPath = .SelectedItems(1) If Not Right(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS End With End Function
И, к стати, посты с содержанием "разобрался" абсолютно не несут никакой информации для других, читающих топик. Если уж задали вопрос и на него начали Вам отвечать либо по таймауту не можете свой вопрос скорректировать, то в правилах хорошего тона - писать, в чём была ошибка. Дабы другим понятно было и они не наступали на те же грабли.
И, к стати, посты с содержанием "разобрался" абсолютно не несут никакой информации для других, читающих топик. Если уж задали вопрос и на него начали Вам отвечать либо по таймауту не можете свой вопрос скорректировать, то в правилах хорошего тона - писать, в чём была ошибка. Дабы другим понятно было и они не наступали на те же грабли.Alex_ST
Alex_ST, я ни в коем случае не хочу никого обидеть. Наоборот, спасибо за подсказки. Отредактировал свой предыдущий пост. По данному коду ругается на параметр "n".
Alex_ST, я ни в коем случае не хочу никого обидеть. Наоборот, спасибо за подсказки. Отредактировал свой предыдущий пост. По данному коду ругается на параметр "n".Viper25
Да не в обиде дело, а в читателях, которые не могут понять, в чём была засада. Ну а уж если компилятор Вам прямо говорит, что не определена переменная n (а ещё, к стати и p) то задайте их в конце-концов [vba]
Код
Dim n As Single, p As Single
[/vba]
Да не в обиде дело, а в читателях, которые не могут понять, в чём была засада. Ну а уж если компилятор Вам прямо говорит, что не определена переменная n (а ещё, к стати и p) то задайте их в конце-концов [vba]
Блин! Терпеть не могу чужие коды без комментариев разбирать, тем более, когда они слеплены из кусков процедур, написанных разными авторами и для применения в других модулях! Да ещё и не видя файла с обрабатываемыми данными и не зная, что нужно получить Ну Вы хотя бы в пошаговом режиме пробегитесь по процедуре самостоятельно! После задания Dim n As Single, p As Single компилятор ругаться перестаёт. Но после выполнения строки [vba]
[/vba] видно, что слэш там лишний, т.к. он уже добавлен функцией GetFolderPath в конец задаваемого пользователем пути
ххххххххххххххххххххххххххххххххххххх И кто Вас учил конкатенацию делать то через амперсанд, то через + ?
Блин! Терпеть не могу чужие коды без комментариев разбирать, тем более, когда они слеплены из кусков процедур, написанных разными авторами и для применения в других модулях! Да ещё и не видя файла с обрабатываемыми данными и не зная, что нужно получить Ну Вы хотя бы в пошаговом режиме пробегитесь по процедуре самостоятельно! После задания Dim n As Single, p As Single компилятор ругаться перестаёт. Но после выполнения строки [vba]
кто Вас учил конкатенацию делать то через амперсанд, то через +
Сотрудник, написавший код, уволился. Теперь я пытаюсь код улучшить. А поскольку нормальный материал по макросам в инете не нашел, пытаюсь сам разобраться. Спасибо форумчанам за поддержку.
кто Вас учил конкатенацию делать то через амперсанд, то через +
Сотрудник, написавший код, уволился. Теперь я пытаюсь код улучшить. А поскольку нормальный материал по макросам в инете не нашел, пытаюсь сам разобраться. Спасибо форумчанам за поддержку.Viper25