将变量从TXT文件导入到Word文档中

问题描述 投票:0回答:1

长话短说,感谢您的阅读:)

我正在尝试自动分析广告导出。我发送客户PowerShell脚本以将AD数据导出到CSV。他们向我发送CSV文件,然后将它们导入到名为WeGalvanice ACL(简称ACL)的分析工具中。在ACL中,我可以进行过滤/匹配/比较以及需要执行的任何操作。

到目前为止一切顺利。现在,我想使用这些结果并将它们放在.docx文件中,这会带来麻烦。 ACL无法导出到docx,只能导出到xlsx / txt / csv / html / json / del。

好吧,我们可以解决这个问题(或者我认为是这样,我做了template.docxtemplate.docx中,我编写了%certainvariable%之类的占位符。

在ACL内,我创建了一个命令,将我需要的所有变量写到名为%variablename%.txt的文件中,而txt中是我需要的值。

例如:

ACL创建disabledusers.txt。如果您打开txt,它只会显示10,表示我们有10个残疾用户。

然后,我试图创建一个VBA宏来导入txt文件,并使用包含的值替换Word文档中相应的%...%文本。

这一切看起来都很顺利,直到我注意到运行脚本后我得到了20,然后是那个框,意思是“我不知道如何显示此字符”。

在运行脚本之前:

picture prior to running the script

运行脚本后:

picture after running the script

我导入的.txt内容的图片:

https://i.imgur.com/Aa90Ek4.png

还有最后但并非最不重要的,是从单词Macro manager中使用的VBS代码im(为方便起见,我仅上传了1个导入和替换作业,但在我的脚本中,我只是为每个文件和变量复制了30次):

Sub ACL()
    ' ACL Macro

    FilePath = "local folderpath\date.txt"
    TextFile = FreeFile
    Open FilePath For Input As TextFile
    new_date = Input(LOF(TextFile), TextFile)
    old_date = "%date%"
    Close TextFile

    With ActiveDocument.Content.Find
        .Forward = True
        .Wrap = wdFindStop
        .Execute findtext:=old_date, replacewith:=new_date, Replace:=wdReplaceAll
    End With    
End Sub

当我手动打开date.txt并删除第二行时,这一切似乎都起作用。但我希望它自动化。 ;)

我尝试过

  • 无用split textfile,/nsplit new_date,/n同时添加\n\r\r。>
  • 使用sed命令删除第二行。无济于事。
  • 找到了许多findstr方法来删除所谓的回车符(crlf)但是我的txt文件突然变空了,或者我的Word文件中仍然包含这些框。
  • 我乐于接受任何编程语言的建议,(对它们来说太可怕了)我只是按正确的顺序将所有内容排入队列以使其正常工作;)

谢谢大家!并且当然问问您是否需要更多信息

长话短说,感谢您的阅读:)我正在尝试自动分析AD导出。我发送客户PowerShell脚本以将AD数据导出到CSV。他们将CSV文件发送给我,我将其导入到...

vba word-vba word
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.