vba在文本文件中,找到指定的行后,在该行前面插入内容

diablososi 2011-03-23 11:59:38
eg:
比如我有一文本文档:
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccc
ddddddddd
eeeeeee
fffffff
ggggggggg
iiiiiiiiiiiiiiiii
zzzzzzzzzz
现在我需要的是:1,找到该文件iiiiiiiiiiiiiiii所在的行(i在第8行),然后在该行前面(第7行)插入内容hhhhhhhhhh。请问在vba中如何实现?请把注释给我加上谢谢。
问题补充:
好的话再送50分。应该是在第8行前面插入HHHHHH。写错了。就是找到i所在的行的行号,然后在i所在的行前面插入hhhhhhh。
...全文
529 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangcz85 2011-04-20
  • 打赏
  • 举报
回复
使用查找替换功能
查找:iiiiiiiiiiiiiiiii
替换:hhhhhhh^piiiiiiiiiiiiiiiii
andy95800 2011-04-14
  • 打赏
  • 举报
回复
楼主V5啊,我欠你家5盘代码咋的,有木有!!!
king06 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zyxvic1981 的回复:]
兄弟 ,为了你这个问题 ,我弄了很久了。已解决
详情见
http://topic.csdn.net/u/20110402/17/9849caf5-3923-4644-ac1d-69abdf62862f.html?1358710546
----------
Sub test()
Dim objWordApp As Object
Dim objWord As Object
D……
[/Quote]
可惜他的是文本文档...
zyxvic1981 2011-04-14
  • 打赏
  • 举报
回复
兄弟 ,你真是个热心肠啊 ,你又来答疑解难啊 。看来,我得照着文本 ,继续处理咯 。
不过这提问的兄弟 ,说不定,自己都把这贴给忘了 。
呵呵。
[Quote=引用 6 楼 king06 的回复:]
引用 5 楼 zyxvic1981 的回复:
兄弟 ,为了你这个问题 ,我弄了很久了。已解决
详情见
http://topic.csdn.net/u/20110402/17/9849caf5-3923-4644-ac1d-69abdf62862f.html?1358710546
----------
Sub test()
Dim objWordApp As Object
Dim ob……
[/Quote]
zyxvic1981 2011-04-13
  • 打赏
  • 举报
回复
兄弟 ,为了你这个问题 ,我弄了很久了。已解决
详情见
http://topic.csdn.net/u/20110402/17/9849caf5-3923-4644-ac1d-69abdf62862f.html?1358710546
----------
Sub test()
Dim objWordApp As Object
Dim objWord As Object
Dim myRange As Object

Dim mySelection As Object




Set objWordApp = CreateObject("Word.Application")

Set objWord = objWordApp.Documents.Open("d:\测试文件.doc")


'遍历新生成的文档,定位到"iiiiiiiiiiiiiiiii",在其前面加入 hhhhhhh

Set mySelection = objWord.ActiveWindow.Selection '这个是问题解决的关键点
'Set myRange = objWord.Content ' 一开始是以rang为搜索,不对的



mySelection.Find.ClearFormatting
mySelection.Find.Execute findText:="iiiiiiiiiiiiiiiii", Forward:=True
If mySelection.Find.Found = True Then


' 下面注释的 也可实现效果

' With mySelection
' .Collapse Direction:=wdCollapseStart
' .TypeParagraph
' .MoveUp Unit:=wdLine, Count:=1 '输入点向上移动一行
' .TypeText Text:="hhhhhhh" '内容
' End With

With mySelection
.InsertParagraphBefore
.InsertBefore "hhhhhhh"
End With

objWord.Save
End If





objWord.Close
objWordApp.Quit

End Sub
zyxvic1981 2011-04-02
  • 打赏
  • 举报
回复
花了很久时间 ,完成了一大部分, ,但就差这么一点!
错误为 'ERROR 要求对象
那位高手补充一下
-------
Sub TEST()
Dim objWordApp As Object
Dim objWord As Object
Dim myRange As Object

Dim mySelection As Object

Set objWordApp = CreateObject("Word.Application")

Set objWord = objWordApp.Documents.Open("d:\测试文件.doc")


'遍历新生成的文档,定位到"iiiiiiiiiiiiiiiii",在其前面加入 hhhhhhh

Set myRange = objWord.Content

myRange.Find.ClearFormatting
myRange.Find.Execute findText:="iii", Forward:=True
If myRange.Find.Found = True Then

'myRange.InsertBefore "hhhhhhh" 在前面插入可以成功
Debug.Print myRange.Style
Set mySelection = myRange.Select 'ERROR 要求对象 mySelection.InsertRowsAbove ' 插入一行

End If


objWord.Close
objWordApp.Quit

End Sub
无·法 2011-03-23
  • 打赏
  • 举报
回复
可以用替换的方法,建议将文件一次性读取进来,替换后再写入文件。

s=replace(s,"iiiiiiiiiiiiiiii","HHHHHH" & vbcrlf "iiiiiiiiiiiiiiii")
dbcontrols 2011-03-23
  • 打赏
  • 举报
回复
请把注释给我加上[Quote=引用 1 楼 sysdzw 的回复:]
可以用替换的方法,建议将文件一次性读取进来,替换后再写入文件。

s=replace(s,"iiiiiiiiiiiiiiii","HHHHHH" & vbcrlf "iiiiiiiiiiiiiiii")
[/Quote]

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧