在一个指定目录下面有HTML、jsp、java、js、css、XML、txt格式的文档,在一个用VBA做成的工具中当选择其中各种格式文档时,自动打开相应格式的文档并当:
HTML、XML、css、js类型的将首行值改为a
jsp、Java类型的将首行值改为b
保存修改
退出,不知道怎么实现啊。。帮帮忙啊,大虾们~!  

解决方案 »

  1.   

    对于txt类型的我下面这样做不报错也不修改txt中的内容。
    Sub printTxt()
    On Error Resume Next
    Dim myPath As String
    myPath = filepatht.Text(此处取即取得指定路径)
    Open myPath & "\" & "*.txt" For Output As #nFileNum
    Write #nFileNum, "a"
    Close #nFileNum  MsgBox "GE_SETUP ok!"
    End Sub
      

  2.   

    文件句柄一次只能操作一个文件
    Sub printTxt(ByVal myPath As String, ByVal filePattern As String, ByVal replaceValue As String)
        On Error Resume Next
        Dim nFileNum As Integer, sFileName As String
        Dim aBytes() As Byte, aLines() As String
        
        sFileName = Dir(myPath & "\" & filePattern)
        While LenB(sFileName)
            nFileNum = FreeFile()
            Open myPath & "\" & sFileName For Binary Access Read As #nFileNum
            ReDim aBytes(LOF(nFileNum) - 1)
            Get #nFileNum, , aBytes
            Close #nFileNum
            
            aLines = Split(StrConv(aBytes, vbUnicode), vbCrLf)
            aLines(0) = replaceValue
            aBytes = StrConv(Join(aLines, vbCrLf), vbFromUnicode)
            
            nFileNum = FreeFile()
            Kill myPath & "\" & sFileName
            Open myPath & "\" & sFileName For Binary Access Write As #nFileNum
            Put #nFileNum, , aBytes
            Close #nFileNum        sFileName = Dir()
        Wend
        MsgBox "GE_SETUP ok!"
    End Sub
    调用
    printTxt filepatht.Text, "*.txt", "a"
    printTxt filepatht.Text, "*.html", "a"
    ...
    printTxt filepatht.Text, "*.jsp", "b"
      

  3.   

    改好了~!谢谢
    现在我要在写此代码的excel中的十七行处分别写下改文件的路径和class
    下面这样为什么不能显示呢?
    Sub printTxt(ByVal myPath As String, ByVal filePattern As String, ByVal replaceValue As String)
        On Error Resume Next
        Dim nFileNum As Integer, sFileName As String
        Dim aBytes() As Byte, aLines() As String
        Dim line As Integer
        Dim strclass As String
        line = 17
        strclass = Range("c8") & " " & Range("d8")
        sFileName = Dir(myPath & "\" & filePattern)
        While LenB(sFileName)
            nFileNum = FreeFile()
            Open myPath & "\" & sFileName For Binary Access Read As #nFileNum
            ReDim aBytes(LOF(nFileNum) - 1)
            Get #nFileNum, , aBytes
            Close #nFileNum
            
            aLines = Split(StrConv(aBytes, vbUnicode), vbCrLf)
            aLines(0) = replaceValue
            aBytes = StrConv(Join(aLines, vbCrLf), vbFromUnicode)
            
            nFileNum = FreeFile()
            Kill myPath & "\" & sFileName
            Open myPath & "\" & sFileName For Binary Access Write As #nFileNum
            Put #nFileNum, , aBytes
            Close #nFileNum        sFileName = Dir()
            For line = 1 To 4000
            mysheet.Range("a" & line) = strclass
            mysheet.Range("c" & line) = myPath & sFileName
            line = line + 1
            Next
        Wend
        MsgBox "GE_SETUP ok!"
    End Sub