对于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
文件句柄一次只能操作一个文件 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
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"
改好了~!谢谢 现在我要在写此代码的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
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
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
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"
现在我要在写此代码的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