如何提取文本文件中的路径并在 VBA 中使用它?
How to extract a path in text file and use it in VBA?
作为初学者,我已经遇到这个问题 2 天了,我非常希望得到你的帮助。
我的文本文件是:
C:\Sourcefile\imported
C:\Destination\not imported
C:\Testexcel\test.xlxs
我需要阅读文本并在 vba 中使用这些路径。
vba 代码的目的是创建一个新文件夹,如果它不存在于目标中。
FSO = CreateObject("Scripting.FileSystemObject")
set oSourceFolder=FSO.getfolder(Line1,Readline) 'if i replace line with the path it will work
set oSourceFolder=FSO.getfolder(Line2,Readline)
set oSourceFolder=FSO.getfolder(Line3,Readline)
if dir("C:\Destination\not imported",16)="" Then Mkdir (":\Destination\not imported")
在这里,我想用线替换路径,但它不起作用。
你能帮帮我吗?
你必须
- 在
开头添加Set
关键字
FSO = CreateObject("Scripting.FileSystemObject"
)
使用 ReadLine method of TextStream 对象将文本文件的每一行检索到 string
对象中
解析 string
返回的可能的文件规范并仅获取其 path 部分
使用 FileSystemObject 对象的 FolderExists 方法检查现有文件夹
并最终获取(如果存在)该文件夹或通过 FileSystemObject 对象的 GetFolder or CreateFolder 方法创建(如果不存在)它
很像如下:
Option Explicit
Sub main()
Dim FSO As FileSystemObject
Dim foldersListFile As TextStream
Dim folderName As String
Dim oSourceFolder As Folder
Set FSO = CreateObject("Scripting.FileSystemObject")
Set foldersListFile = FSO.OpenTextFile("C:\myPath\folders.txt", ForReading, TristateFalse)
Do While Not foldersListFile.AtEndOfStream
folderName = GetFolderStringOnly(foldersListFile.ReadLine)
If FSO.FolderExists(folderName) Then
Set oSourceFolder = FSO.GetFolder(folderName)
Else
Set oSourceFolder = FSO.CreateFolder(folderName)
End If
Loop
foldersListFile.Close
End Sub
Function GetFolderStringOnly(textLine As String) As String
Dim iDot As Long, iSlash As Long
iDot = InStrRev(textLine, ".")
If iDot > 0 Then
iSlash = InStrRev(Left(textLine, iDot), "\")
textLine = Left(textLine, iSlash - 1)
End If
GetFolderStringOnly = textLine
End Function
作为初学者,我已经遇到这个问题 2 天了,我非常希望得到你的帮助。
我的文本文件是:
C:\Sourcefile\imported
C:\Destination\not imported
C:\Testexcel\test.xlxs
我需要阅读文本并在 vba 中使用这些路径。 vba 代码的目的是创建一个新文件夹,如果它不存在于目标中。
FSO = CreateObject("Scripting.FileSystemObject")
set oSourceFolder=FSO.getfolder(Line1,Readline) 'if i replace line with the path it will work
set oSourceFolder=FSO.getfolder(Line2,Readline)
set oSourceFolder=FSO.getfolder(Line3,Readline)
if dir("C:\Destination\not imported",16)="" Then Mkdir (":\Destination\not imported")
在这里,我想用线替换路径,但它不起作用。
你能帮帮我吗?
你必须
- 在 开头添加
Set
关键字
FSO = CreateObject("Scripting.FileSystemObject"
)
使用 ReadLine method of TextStream 对象将文本文件的每一行检索到
string
对象中解析
string
返回的可能的文件规范并仅获取其 path 部分使用 FileSystemObject 对象的 FolderExists 方法检查现有文件夹
并最终获取(如果存在)该文件夹或通过 FileSystemObject 对象的 GetFolder or CreateFolder 方法创建(如果不存在)它
很像如下:
Option Explicit
Sub main()
Dim FSO As FileSystemObject
Dim foldersListFile As TextStream
Dim folderName As String
Dim oSourceFolder As Folder
Set FSO = CreateObject("Scripting.FileSystemObject")
Set foldersListFile = FSO.OpenTextFile("C:\myPath\folders.txt", ForReading, TristateFalse)
Do While Not foldersListFile.AtEndOfStream
folderName = GetFolderStringOnly(foldersListFile.ReadLine)
If FSO.FolderExists(folderName) Then
Set oSourceFolder = FSO.GetFolder(folderName)
Else
Set oSourceFolder = FSO.CreateFolder(folderName)
End If
Loop
foldersListFile.Close
End Sub
Function GetFolderStringOnly(textLine As String) As String
Dim iDot As Long, iSlash As Long
iDot = InStrRev(textLine, ".")
If iDot > 0 Then
iSlash = InStrRev(Left(textLine, iDot), "\")
textLine = Left(textLine, iSlash - 1)
End If
GetFolderStringOnly = textLine
End Function