VBA Word 2013:Scripting.FileSystemObject:运行时错误 424 - 需要对象
VBA Word 2013: Scripting.FileSystemObject: Runtime Error 424 - object required
我对VBA不是很坚定,我一直在尝试使用我前段时间在Excel写的Word下的一个功能。 (它在哪里工作完美!)
函数遍历文本文件和 returns 特定(寻找的)其他字符串之后的字符串:
Function keySearch(ByVal sSearch As String) As String
Dim fso As New FileSystemObject
Dim FileNum
Dim DataLine As String
Dim posOf_A As Integer
Dim filepath As String
keySearch = ""
'Create filesystem object
Set fso = CreateObject("Scripting.FileSystemObject")
'filepath to textfile
filepath = ActiveWorkbook.Path & "\temp.txt"
Set FileNum = fso.OpenTextFile(filepath, 1) '<--- This is where the error occurs!
Do While Not FileNum.AtEndOfStream
DataLine = FileNum.ReadLine
posOf_A = InStr(1, DataLine, sSearch, vbTextCompare)
If posOf_A = 1 Then
keySearch = Right(DataLine, Len(DataLine) - Len(sSearch))
End If
Loop
FileNum.Close
End Function
错误发生在应该打开文本文件的行中。
错误消息:运行时错误 424:需要对象。
我已经尽可能地拆分了这条线,从 Excel 完美运行的函数下面的原始代码行缩小了搜索范围:
FileNum = CreateObject("Scripting.FileSystemObject").OpenTextFile(ActiveWorkbook.Path & "\temp.txt", 1)
但我似乎无法让它发挥作用。我已经在互联网上看到多个示例(看起来)完全按照我正在做的方式完全相同...
P.S.: Microsoft Scripting Runtime 已激活。
在此先感谢您提供的任何帮助,非常感谢!
将 ActiveWorkbook.Path
更改为 ActiveDocument.Path
。您正在尝试为文件路径引用活动的 excel 工作簿。
我对VBA不是很坚定,我一直在尝试使用我前段时间在Excel写的Word下的一个功能。 (它在哪里工作完美!)
函数遍历文本文件和 returns 特定(寻找的)其他字符串之后的字符串:
Function keySearch(ByVal sSearch As String) As String
Dim fso As New FileSystemObject
Dim FileNum
Dim DataLine As String
Dim posOf_A As Integer
Dim filepath As String
keySearch = ""
'Create filesystem object
Set fso = CreateObject("Scripting.FileSystemObject")
'filepath to textfile
filepath = ActiveWorkbook.Path & "\temp.txt"
Set FileNum = fso.OpenTextFile(filepath, 1) '<--- This is where the error occurs!
Do While Not FileNum.AtEndOfStream
DataLine = FileNum.ReadLine
posOf_A = InStr(1, DataLine, sSearch, vbTextCompare)
If posOf_A = 1 Then
keySearch = Right(DataLine, Len(DataLine) - Len(sSearch))
End If
Loop
FileNum.Close
End Function
错误发生在应该打开文本文件的行中。 错误消息:运行时错误 424:需要对象。
我已经尽可能地拆分了这条线,从 Excel 完美运行的函数下面的原始代码行缩小了搜索范围:
FileNum = CreateObject("Scripting.FileSystemObject").OpenTextFile(ActiveWorkbook.Path & "\temp.txt", 1)
但我似乎无法让它发挥作用。我已经在互联网上看到多个示例(看起来)完全按照我正在做的方式完全相同...
P.S.: Microsoft Scripting Runtime 已激活。
在此先感谢您提供的任何帮助,非常感谢!
将 ActiveWorkbook.Path
更改为 ActiveDocument.Path
。您正在尝试为文件路径引用活动的 excel 工作簿。