获取从Excel宏调用的Word宏函数的返回值

获取从Excel宏调用的Word宏函数的返回值,excel,vba,ms-word,Excel,Vba,Ms Word,我正在做一个Excel宏来获取Word文件第一个表(基本上是表的标题)前面的第一段文本 Excel中的“我的宏”如下所示: Sub Main() Set applicationWord = CreateObject("Word.Application") Set documentWord = applicationWord.Documents.Open(Filename:="C:\Users\...\my_word.docm", Read

我正在做一个Excel宏来获取Word文件第一个表(基本上是表的标题)前面的第一段文本

Excel中的“我的宏”如下所示:

Sub Main()

    Set applicationWord = CreateObject("Word.Application")
    Set documentWord = applicationWord.Documents.Open(Filename:="C:\Users\...\my_word.docm", ReadOnly:=True)
    applicationWord.Visible = True
    applicationWord.Activate
    applicationWord.Run "GetFirstString"

    Set documentWord = Nothing
    Set applicationWord = Nothing

End Sub
我们无法编写
str=applicationWord。请像任何其他编程语言一样运行“GetFirstString”
,将返回字符串保存在变量中。 在我的Word文件
my_Word.docm
中,我有以下宏
GetFirstString

Function GetFirstString() As String

    GetFirstString = ActiveDocument.Tables(1).Range.Previous(Unit:=wdParagraph, Count:=1)
    
End Sub
这是一个原型。我想这样做,因为我想用从指定文件夹的每个Word文件中提取的文本编写一个Excel文件。我从Excel中尝试了以下宏,以查看是否能够使用
段落
对象从Word文件中读取文本,但出现了一个错误,该代码无法与Excel VBA一起使用,因为Excel VBA无法识别方法成员

Private Sub ExtractionPrototype()

    Dim applicationWord As Object
    Dim documentWord As Object

    Set applicationWord = GetObject(, "Word.Application")
    applicationWord.Visible = True
    Set documentWord = applicationWord.Documents.Open(cheminDossierReparation)
    
    MsgBox documentWord.Tables(1).Range.Previous(Unit:=wdParagraph, Count:=1)

    documentWord.Close savechanges:=False

End Sub

有没有办法将Word宏中的值返回到Excel宏中?文档中写着“Run方法返回被调用宏返回的内容”,但是这个值到底是什么以及如何获取它呢?

提取原型例程不起作用的唯一原因是因为您使用了常量值
wdparagration
,它是
WdUnits
枚举的一部分,Excel中未定义的。要么用它的值(4)替换它,要么在例程中用该值将它声明为常量

“我们无法写入
str=applicationWord。请运行“GetFirstString”

正确,因为您错过了告诉VBA您期望返回值的括号。所以您编写了
str=applicationWord.Run(“GetFirstString”)