Привет. Весь этот код прекрасно работает при заполнении формы VA 28-1905 с листа в Excel. Однако флажки не остаются отмеченными. Они проверяются при первоначальном сохранении формы, но при повторном ее открытии флажки не устанавливаются. Я не знаю, как решить это. Любая помощь будет оценена. Я не программирую все время, так что если у вас есть предложения по улучшению, которые также были бы замечательными.
Я пробовал objJSO.flattenpages, но я получаю NotAllowedError: настройки безопасности запрещают доступ к этому свойству или методу. Если я остановлю код перед сохранением, все заполнится правильно, но после сохранения флажки будут сброшены на 0.
Этот код был адаптирован из кода Христоса Самараса.
'Enable screen flickering.
Application.ScreenUpdating = True
' 'All checkboxes to checked
objAcroApp.Show
objJSO.GetField(strFieldNames(22)).Value = 1
objJSO.GetField(strFieldNames(23)).Value = 1
objJSO.GetField(strFieldNames(24)).Value = 1
objJSO.GetField(strFieldNames(25)).Value = 1
objJSO.GetField(strFieldNames(26)).Value = 1
objJSO.GetField(strFieldNames(27)).Value = 1
objJSO.GetField(strFieldNames(28)).Value = 1
objJSO.GetField(strFieldNames(52)).Value = 1
'Veteran's Vocation Choice set focus
objAcroApp.Show
objJSO.GetField(strFieldNames(5)).SetFocus
Application.Wait Now + 0.00001
'Application.SendKeys "{Tab}", True
Application.SendKeys "{right}", True
'Create the output path with the term and class .pdf
Dim w
If x = 4 Then
w = LastRow
Else
w = x - 1
End If
refFile = "\" & oSheet & "." & w & ".pdf"
strPDFOutPath = strPDFOutPath & refFile
'Save the form as new PDF file.
objAcroPDDoc.Save 2, strPDFOutPath
'Close the form without saving the changes.
objAcroAVDoc.Close True
'Close the Acrobat application.
objAcroApp.Exit
'Release the objects.
Set objJSO = Nothing
Set objAcroPDDoc = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
Else
MsgBox "Could not open the file!", vbCritical, "File error"
'Close the Acrobat application.
objAcroApp.Exit
'Release the objects and exit.
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
Exit Sub
End If
i = w
Next i
End With
Next p
'Inform the user that forms were filled.
MsgBox "All forms were created successfully!", vbInformation, "Finished"
End Sub