Virgo пишет:Как правильно передать в функцию ссылку на объект который содержит путь к файлу, для дальнейшей правки.
Dim nameDoc1 As String ' имя файла
nameDoc1 = path + "\001.docx"
Dim objWrdApp As Object
Dim objWrdDoc As Object
Set objWrdApp = GetObject(, "Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(nameDoc1)
CopyToDoc1 (objWrdDoc)
End Sub
Sub CopyToDoc1 [color=red](ByRef objWrdDoc As Document)[/color]
End Sub
Самое главное - то, что у вас не функция , а процедура. Я не уверен, можно ли вызвать её таким образом (т.е. просто указав название). Функции обычно используют для того, чтобы вернуть какое-то значение в переменную:
Sub FirstParaText()
Dim oDoc as Document
Dim sGetString as String
sGetString = functionGetString(oDoc)
End Sub
Function functionGetString(ByRef oDoc as Document)
functionGetString = oDoc.Paragraphs(1).range.text 'Например
End Function
Процедуру используют обычно для запуска доп обработки (нужно что-то выполнить)
Я пользуюсь двумя способами - Call + имя процедуры (если отлавливаю ошибки в коде)
или Application.Run Macro:="имя процедуры". Т.е. в Вашем случае это будет либо\либо:
Call CopyToDoc1 (objWrdDoc)
либо
Application.Run "CopyToDoc1", objWrdDoc
Например,
Sub Callslsll()
Dim oDoc As Document
Set oDoc = ActiveDocument
Word.Application.Run "Mesager", oDoc
End Sub
Private Sub Mesager(ByRef oDoc As Document)
MsgBox oDoc.Name
End Sub
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871