这个功能怎么来实现
a2048 2004-11-01 07:38:32 Private Sub Command1_Click()
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FileExists("c:\a.txt") Then
MsgBox "a.txt is not exist!"
Exit Sub
End If
Const ForReading = 1
Set txtFile = objFSO.OpenTextFile("c:\a.txt", ForReading)
strLine = txtFile.Readline
Dim tmp
tmp = Split(strLine, "@")
'MsgBox tmp(0)
'MsgBox tmp(1)
'MsgBox tmp(2)
Dim docApp
Set docApp = CreateObject("Word.Application")
docApp.Visible = True
Set qq = docApp.Documents.Open("C:\abc\dong\qq.doc")
Set doc1 = docApp.Documents.Open(tmp(2))
doc1.Activate
docApp.Selection.WholeStory
docApp.Selection.Copy
qq.Activate
docApp.Selection.WholeStory
docApp.Selection.Paste
docApp.Selection.Find.ClearFormatting
With docApp.Selection.Find
.Text = "姓名"
.Replacement.Text = ""
.Forward = True
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
docApp.Selection.Find.Execute
docApp.Selection.TypeText tmp(0)
docApp.Selection.Find.ClearFormatting
With docApp.Selection.Find
.Text = "地点"
.Replacement.Text = ""
.Forward = True
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
docApp.Selection.Find.Execute
docApp.Selection.TypeText tmp(1)
qq.Save
qq.Close
doc1.Close
Set qq = Nothing
Set doc1 = Nothing
docApp.Quit
Set docApp = Nothing
Set objFSO = Nothing
End Sub
以上代码实现的功能是:
在C盘有个文件,例如c:\a.txt文件,这个文件有这样的数据:小黄@上海@C:\abc\dong\姓名表.doc;还有另外一个C:\abc\dong\qq.doc,这个qq.doc是个没有数据的word,也就是空白的word。
在这个姓名表.doc里有二个中括号,中括号里分别是姓名和地点,例如:[姓名] [地点]
a.txt里的小黄和上海二个数据读入到姓名表.doc里,读完后就自动把姓名表.doc的全部内容移到qq.doc里,移完后姓名表.doc这个文件就恢复到读数据之前以被下一次重复使用,
说明:1、c:\a.txt文件里的数据是随时可以修改的,例如:可以改成小将@北京@C:\abc\dong\报名.doc。但上面的只有三个数据分别用@标记分开,他们的含义是姓名、地点、所要调用的word路径,但数据长度不一定相等的。
2、C:\abc\dong\目录下的word模板有很多种。例如还有报名.doc等等。
我现在的问题1、就是a.txt是数据是小黄@上海@C:\abc\dong\姓名表.doc 在姓名表.doc里如果就要[地点]那怎么解决?
2、假如a.txt的数据增加了变成小黄@上海@2004-05-09@C:\abc\dong\报名表.doc 这时报名表.doc要的数据是[姓名] [地点] [那年] [那月] [那日] 也就是小黄替换[姓名];上海替换[地点];2004替换[那年];05替换[那月];09替换[那日];