Я заметил, что у некоторых есть эта проблема, но, похоже, не могу найти решение. Windows 10 и Excel 2016.
Я пытаюсь выполнить макро-цикл VBA для всех .xls
документов в папке, фактически открывая документ (а не просто «открывая в фоновом режиме / невидимо»), потому чтоУ меня есть несколько скриптов AutoHotKey, которые требуют, чтобы документ был физически открыт, чтобы они могли работать. В настоящий момент VBA выполняет весь код в фоновом режиме, и я не могу этого получить, потому что сценарии AHK не редактируют документ, если он не открыт.
Я хочуфизически откройте первый документ, один раз открыв его, затем используйте функцию SendKeys для запуска скриптов AHK (которые редактируют документ так, как я хочу, не спрашивайте), затем распечатайте документ, сохраните и закройте его, затем перейдите кследующий документ в папке.
Код выглядит так:
Sub Button4_Click()
'
' Button2_Click Macro
' Bulk preparation of FE pages for printing
'
' Variables
Dim folderPath As String
Dim Filename As String
Dim wb As Workbook
Dim Masterwb As Workbook
Dim sh As Worksheet
Dim NewSht As Worksheet
Dim FindRng As Range
Dim PasteRow As Long
Dim SrchRng As Range, cel As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' set master workbook
Set Masterwb = Workbooks("MattsTools.xlsm")
' Directory of where the copies of the files to be unchecked are located
folderPath = "C:\Users\Employee\Desktop\...\For_Printing"
' A conditional for finding the directory
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
' Do this for each workbook in the folder, as long as it's not MattsTools.xlsm which is this workbook
Filename = Dir(folderPath & "*.xls*")
Do While Filename <> "" And Filename <> "MattsTools.xlsm"
' Open work book? WHY WON'T IT ACTUALLY OPEN!?
Set wb = Workbooks.Open(folderPath & Filename)
' Wait for the workbook to open?
Application.Wait (Now + TimeValue("0:00:05"))
' Always start on the first worksheet
wb.Worksheets("FIRE EXT.").Activate
' Hit the AHK Script Hotkey to upgrade the template
SendKeys "^%+u"
' Sleep for 7 seconds to wait for upgrade to finish
Application.Wait (Now + TimeValue("0:00:07"))
...'The Rest of my VBA Omitted...
' Now print the sheet
ActiveSheet.PrintOut
' Close and save the workbook
wb.Close True
Exit_Loop:
Set wb = Nothing
Filename = Dir
' Next workbook
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Есть идеи, как открыть эту вещь? Я попытался установить Editable: = True, но ничего не сделал. Это для рабочего проекта, поэтому хотелось бы получить некоторую информацию. Спасибо!