我被要求在工作中做点什么,因为我运行的是 Ubuntu 而不是 Windows,所以我有 Libre Office(LO Writer 相当于 Word)。- 任务是自动化一些合同,其中文档保持 90% 相同,除了一些变量从 doc 到 doc。
首先 - Basic 是一场噩梦,通常整个宏编写过程也非常糟糕。
现在到“代码” - 我不断收到一些错误BASIC error: Argument is not optional
,我要做的就是将两个数组传递给另一个函数:
Function test ( ByVal changeFrom() As String ,ByVal changeTo() As String )
Dim I As Long
Dim Doc As Object
Dim Replace As Object
Doc = ThisComponent
Replace = Doc.createReplaceDescriptor
For I = 0 To 2
Replace.SearchString = changeFrom(I) //Error is here
Replace.ReplaceString = changeTo(I)
Doc.replaceAll(Replace)
Next I
End Function
REM ***** BASIC *****
Sub main
Dim changeFrom(3) As String
Dim changeTo(3) As String
changeFrom() = Array("<word2>", "<word3>", "<word1>")
changeTo() = Array("value1", "value2", "value3")
test( changeFrom , changeTo)
End Sub
一般来说 -
有没有人知道比“基本”更好的方法来做这件事,这真的让我发疯。我知道它可以用 Python 完成,但我有点希望有一个更简单的方法,问题是 word 文档有需要定义的表和东西,所以我不能只是将模板复制/粘贴到java类中并修改它..
谢谢!