Страницы: 1
RSS
Програмное нажате кнопки "Отмена" в дилоговом окне, Автоматизация выбора в окне MsgBox
 
Доброго времени суток.
Прошу помощи, подозреваю, что ответ банален, но не могу найти простого ответа.
Есть файл, при открытии которого сделано диалогове окно для выбора опции пользователем.

Код
Private Sub Workbook_Open()
    If IsEmpty(Range("F1").Value) = False Then
        Dim answer As Integer
        answer = MsgBox("Update stocks?", vbQuestion + vbYesNo)

            If answer = vbYes Then
                Call UpdateStocks
                Else
            End If
        Else
    End If
End Sub

Этот же файл должен открываться далее несколько раз подряд с автономным поправлением данных и записью под другим названием.
Вопрос, как сделать так, чтобы програмно при открытии файла выбералась кнопка "Отмена" при появлении MsgBox_а.
Ниже код на октрытие файла..
Код
Sub OpenStock()
    Application.AskToUpdateLinks = False
    Workbooks.Open Filename:="\\nassrv\StockList.xls"
    
??? вот тут подозреваю должен быть эта команда вписана

End Sub
Заранее благодраю за помощь.
 
Это потребует корректировки Workbook_Open, но

Код
Sub OpenStock()
    Application.AskToUpdateLinks = False
    Application.Names.Add "UpdateStocksCancel", "=True"
    Workbooks.Open Filename:="\\nassrv\StockList.xls"

    Application.Names.("UpdateStocksCancel").Delete


Код
Private Sub Workbook_Open()
    If IsEmpty(Range("F1").Value) = False Then
        Dim answer As Integer, A as String
        On Error Resume Next
        A = Application.Names("UpdateStocksCance")
        On Error GoTo 0
        If A = "=TRUE" Then
            answer=vbNo
        Else
            answer = MsgBox("Update stocks?", vbQuestion + vbYesNo)
        end if
            If answer = vbYes Then
                Call UpdateStocks
                Else
            End If
Изменено: БМВ - 13.08.2022 11:50:09
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Application.Names.("UpdateStocksCancel").Delete
думаю, что точка между Names и скобкой не нужна
Изменено: New - 15.08.2022 03:29:22
 
Iurii Radchenko, здравствуйте
1. Есть макрос на событие открытия книги
2. 1ый раз этот макрос должен сработать, а впоследствии - нет

Вместо того, чтобы что-то нажимать, нужно просто НЕ запускать этот макрос. Это можно сделать, отключив обработку событий (Application.EnableEvents=False)) ПЕРЕД открытием книги не в первый раз и в конце (или сразу после открытия) включив (…=True) её обратно.
Изменено: Jack Famous - 15.08.2022 09:30:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх