Я бы хотел, чтобы система была максимально автоматизирована для моих пользователей. Прямо сейчас у меня есть код, который запускается, когда пользователь нажимает кнопку. Код берет данные с намерением применить их к документу Word через слияние.
Все работает как задумано, за исключением того, что всегда появляется сообщение о том, что
При открытии этого документа будет запущена следующая команда SQL:
Выберите * FROM 'TAGS$'
Данные из вашей базы данных будут помещены в документ. Вы хотите продолжить?
Мне нужно сделать это как можно проще, не рискуя тем, что пользователи выберут «Нет» из-за того, что они запутались. Как VBA может автоматически продолжить и принять размещение данных, как если бы они выбрали «Да»?
Я попытался просто использовать следующий код, чтобы заблокировать оповещения в надежде, что по умолчанию будет установлено «Да» и продолжить, но это не сработало.
Application.DisplayAlerts = False
Это то, что у меня есть
Sub RunMailMerge()
Application.ScreenUpdating = False
Dim wdOutputName, wdInputName As String
wdOutputName = ThisWorkbook.Path & "\nametags - " _
& Format(Date, "d mmm yyyy")
wdInputName = ThisWorkbook.Path & "\nametags.docx"
' open the mail merge layout file
Dim wdDoc As Object
Set wdDoc = GetObject(wdInputName, "Word.document")
wdDoc.Application.Visible = True
With wdDoc.MailMerge
.MainDocumentType = wdFormLetters
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute Pause:=False
End With
'Application.ScreenUpdating = True
'show and save output file
wdDoc.Application.Visible = True
wdDoc.Application.ActiveDocument.SaveAs wdOutputName
' cleanup
wdDoc.Close SaveChanges:=False
'activedoc.Close
Set wdDoc = Nothing
End Sub
MsgBox
, сказав Уважаемый пользователь, пожалуйста, нажмите OK сейчас, а также в следующем сообщении, с уважением, Эштон. - person Jean-François Corbett   schedule 03.07.2012