【问题标题】:How to fill an array with the information of a txt file and then using that array?如何用 txt 文件的信息填充数组,然后使用该数组?
【发布时间】:2019-02-03 21:47:15
【问题描述】:

对不起,如果这个问题之前已经完成但找不到它并且类似的例子不起作用。

我想把一个txt文件的信息放在VBA上的一个数组中。然后使用该数组填充不同的代码字符串。你能帮助我吗?现在我无法读取文件并填充数组。

这个想法是这样的: 每行包含客户数量、地址等的文件 VBA读取txt并填充一个数组,每个位置都是txt的一行。 我用数组填充模板:

Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "CLIENTENumber"
        .Replacement.Text = ARRAY[Positionwithclient]
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

谢谢!!

如需额外信息,txt上的信息按如下方式排列:

565656
Peter
(etc)

第一个是客户编号,第二个是名称,等等。然后我将 word 文档中的“CLIENTNumber”替换为 565656,例如。替换代码在上面,效果很好。

【问题讨论】:

  • 您需要告诉我们文本文件中的数据是如何排列的,以及它们与 Word 文档中的内容之间的关系。
  • 你好@macropod,我用文本文件的排列方式编辑了主要问题。

标签: arrays vba ms-word


【解决方案1】:

尝试以下方式:

Sub Demo()
Application.ScreenUpdating = False
Dim SrcDoc As Document, RList, i As Long
Const FList As String = "CLIENTNumber,CLIENTName"
'Load the strings from the reference file into a text string to be used as an array.
Set SrcDoc = Documents.Open("Drive:\FilePath\DataList.txt", ReadOnly:=True, AddToRecentFiles:=False, Visible:=False)
With SrcDoc
  RList = .Range.Text
  .Close False
End With
Set SrcDoc = Nothing
With ActiveDocument.Range.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .MatchWholeWord = True
  .MatchCase = True
  For i = 0 To UBound(Split(FList, ","))
    .Text = Split(FList, vbCr)(i)
    .Replacement.Text = Split(RList, vbCr)(i)
    .Execute Replace:=wdReplaceAll
  Next
End With
Application.ScreenUpdating = True
End Sub

只需提供 FList 字符串的所有项目,仅用逗号分隔它们并按照它们在文本文件中出现的顺序,以及指定的文本文件的完整路径和名称。

【讨论】:

  • 非常感谢您的热心帮助!我将使用这些信息! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
相关资源
最近更新 更多