当前位置:编程学习 > VB >>

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

eg:
比如我有一文本文档:
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccc
ddddddddd
eeeeeee
fffffff
ggggggggg
iiiiiiiiiiiiiiiii
zzzzzzzzzz
现在我需要的是:1,找到该文件iiiiiiiiiiiiiiii所在的行(i在第8行),然后在该行前面(第7行)插入内容hhhhhhhhhh。请问在vba中如何实现?请把注释给我加上谢谢。
问题补充:
好的话再送50分。应该是在第8行前面插入HHHHHH。写错了。就是找到i所在的行的行号,然后在i所在的行前面插入hhhhhhh。 --------------------编程问答-------------------- 可以用替换的方法,建议将文件一次性读取进来,替换后再写入文件。

s=replace(s,"iiiiiiiiiiiiiiii","HHHHHH" & vbcrlf "iiiiiiiiiiiiiiii") --------------------编程问答-------------------- 请把注释给我加上
引用 1 楼 sysdzw 的回复:
可以用替换的方法,建议将文件一次性读取进来,替换后再写入文件。

s=replace(s,"iiiiiiiiiiiiiiii","HHHHHH" & vbcrlf "iiiiiiiiiiiiiiii")
--------------------编程问答-------------------- --------------------编程问答-------------------- 花了很久时间 ,完成了一大部分, ,但就差这么一点!
错误为   '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 --------------------编程问答-------------------- 兄弟 ,为了你这个问题 ,我弄了很久了。已解决
详情见
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
--------------------编程问答--------------------
引用 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……

可惜他的是文本文档... --------------------编程问答-------------------- 楼主V5啊,我欠你家5盘代码咋的,有木有!!! --------------------编程问答-------------------- 兄弟 ,你真是个热心肠啊 ,你又来答疑解难啊 。看来,我得照着文本 ,继续处理咯 。
不过这提问的兄弟 ,说不定,自己都把这贴给忘了 。
呵呵。
引用 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……
--------------------编程问答-------------------- 使用查找替换功能
查找:iiiiiiiiiiiiiiiii
替换:hhhhhhh^piiiiiiiiiiiiiiiii
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,