Есть такая проблема, некий файл Б_Д может быть открыт или закрыт если он открыт то выполнение некого КОДА1 в другом файле выполняется некорректно, потому как в коде другого файла встроена строка свертывания окна данного файла и в момент свертывания окна, код начинает выполнять действие в файле Б_Д в результате происходит сбой. Пытался на одном из форумов получить помощь, но походу меня не поняли, признав это как троллинг. Помогите создать условие для корректного выполнения кода, условие примерно вижу такое:
При выполнении КОДА1, например в файле N, изначально проверяется открыт ли файл Б_Д если он открыт то дабы избежать конфликта скрывается окно файла Б_Д, после выполнение КОДА1 отображается окно файла Б_Д и становится пассивным по отношению к файлу N. Если файл Б_Д закрыт то КОД1 в файле N просто выполняется.
Вижу примерно так, где КОД1 вставлен в две позиции, нельзя ли это сделать как-то лаконично чтобы КОД1 не был в двух позициях потому как он очень массивный.
[vba]
Код
Sub Макрос1()Выполнение КОДА1 в неком файле N If Если файл Б_Д открыт Then Скрыть окно файла Б_Д Выполнить КОД1 Отобразить окно файла Б_Д Сделать окно файла Б_Д пассивным по отношение к файлу N Else Выполнить КОД1 End If End Sub
[/vba]
Здравствуйте.
Есть такая проблема, некий файл Б_Д может быть открыт или закрыт если он открыт то выполнение некого КОДА1 в другом файле выполняется некорректно, потому как в коде другого файла встроена строка свертывания окна данного файла и в момент свертывания окна, код начинает выполнять действие в файле Б_Д в результате происходит сбой. Пытался на одном из форумов получить помощь, но походу меня не поняли, признав это как троллинг. Помогите создать условие для корректного выполнения кода, условие примерно вижу такое:
При выполнении КОДА1, например в файле N, изначально проверяется открыт ли файл Б_Д если он открыт то дабы избежать конфликта скрывается окно файла Б_Д, после выполнение КОДА1 отображается окно файла Б_Д и становится пассивным по отношению к файлу N. Если файл Б_Д закрыт то КОД1 в файле N просто выполняется.
Вижу примерно так, где КОД1 вставлен в две позиции, нельзя ли это сделать как-то лаконично чтобы КОД1 не был в двух позициях потому как он очень массивный.
[vba]
Код
Sub Макрос1()Выполнение КОДА1 в неком файле N If Если файл Б_Д открыт Then Скрыть окно файла Б_Д Выполнить КОД1 Отобразить окно файла Б_Д Сделать окно файла Б_Д пассивным по отношение к файлу N Else Выполнить КОД1 End If End Sub
Здравствуйте. Не понятно,чем Вам не нравится Ваша конструкция? Если правильно понял Вашу проблему, то решение такое. Сам код вставлять не надо, достаточно имени этого кода. Поулчится так[vba]
Код
Sub Макрос1() If Если файл Б_Д открыт Then Скрыть окно файла Б_Д КОД1 Отобразить окно файла Б_Д Сделать окно фала Б_Д пассивным Else КОД1 End If End Sub
[/vba]
Здравствуйте. Не понятно,чем Вам не нравится Ваша конструкция? Если правильно понял Вашу проблему, то решение такое. Сам код вставлять не надо, достаточно имени этого кода. Поулчится так[vba]
Код
Sub Макрос1() If Если файл Б_Д открыт Then Скрыть окно файла Б_Д КОД1 Отобразить окно файла Б_Д Сделать окно фала Б_Д пассивным Else КОД1 End If End Sub
gling, Просто я хотел встроить условие в существующий код без дополнительных кодов на имя, ну можно тогда на имя. Да лучше имя, а то что-нибудь в коде запартачу.
gling, Просто я хотел встроить условие в существующий код без дополнительных кодов на имя, ну можно тогда на имя. Да лучше имя, а то что-нибудь в коде запартачу.Сергей13
Сообщение отредактировал Сергей13 - Воскресенье, 10.06.2018, 01:39
В Excel очень мало случаев, когда тредуется активация листа, а при обмене данными с базой практически никогда. Поэтому ваш код должен выглядеть так [vba]
Код
Sub Макрос1() выполнить правильно написанный КОД1 End Sub
[/vba]
В Excel очень мало случаев, когда тредуется активация листа, а при обмене данными с базой практически никогда. Поэтому ваш код должен выглядеть так [vba]
Код
Sub Макрос1() выполнить правильно написанный КОД1 End Sub