Я действительно застрял на этом и не знаю, с чего начать. Все еще новичок в VBA.
Я получил код, который записывает значения текстовых полей из пользовательской формы в текстовый документ с использованием закладок. Этот документ затем сохраняется в C: \ documents после нажатия кнопки отправить.
По сути, я пытаюсь добиться использования другой кнопки на пользовательской форме, чтобы открыть этот сохраненный файл на основе одного из значений, которые я ввел ранее, и при необходимости изменить документ.
Возможно ли это вообще?
Спасибо.
Это то, что у меня работает, чтобы писать в слово doc от пользовательской формы, когда я нажимаю кнопку отправки. Но я добавил еще одну командную кнопку, чтобы вспомнить, что документ на основе значения текстового поля в примере пользовательской формы, значение пользовательской формы textbox1 равно 3. Поэтому, когда я нажимаю на кнопку редактирования команды, он вызывает документ, который имеет это значение в своем содержимом, т.е. bookmark1 = 3
'----------The Script below writes values to the document -----------------------
-----------------
Dim wApp As Object
Dim wDoc As Object
'We need to continue through errors since if Word isn't
'open the GetObject line will give an error
On Error Resume Next
Set wApp = GetObject(, "Word.Application")
'We've tried to get Word but if it's nothing then it isn't open
If wApp Is Nothing Then
Set wApp = CreateObject("Word.Application")
End If
'It's good practice to reset error warnings
On Error GoTo 0
'Open your document and ensure its visible and activate after openning
Set wDoc =
wApp.Documents.Open(Filename:="C:\Documents\template.docx ",
ReadOnly:=False)
With wDoc
.Bookmarks("bookmark1").Range.Text = Me.TextBox1.Value
.Bookmarks("bookmark2").Range.Text = Me.TextBox3.Value
.Bookmarks("bookmark3").Range.Text = Me.TextBox4.Value
.Bookmarks("bookmark4").Range.Text = Me.TextBox5.Value
.Bookmarks("bookmark5").Range.Text = Me.TextBox6.Value
.Bookmarks("bookmark6").Range.Text = Me.TextBox7.Value
.Bookmarks("bookmark7").Range.Text = Me.TextBox8.Value
End With
wApp.Visible = True
'set default file name and file path
ProposedFileName = Format(Now(), "DDMMMYYYY") &
TextBox1.Value & "-" & TextBox2.Value & ".doc"
ProposedFilePath = "C:\Users\Documents\"
With wApp.FileDialog(msoFileDialogSaveAs)
wDoc.SaveAs2 ProposedFilePath & ProposedFileName, _
FilterIndex = 1, _
FileFormat:=wdFormatDocument
End With
End Sub
В другой пользовательской форме есть кнопка редактирования, при нажатии которой вызывается сохраненный документ из приведенного выше сценария. Может быть, что-то вроде ниже?
Sub EditButton_Cick()
Set wDoc = wApp.Documents.Open(Filename:="C:\Documents\SavedDoc.docx ",
ReadOnly:=False) 'here is where I want to open the previous saved document located in C:\Documents from the script in my initial question however it should open the` doc referenced to textbox1.value
With wDoc
.Bookmarks("bookmark10").Range.Text = Me.TextBox10.Value 'In the userform, I add in another value later to the saved document
objDoc.Save
End Sub