?? module1.bas
字號:
Attribute VB_Name = "ModGetMultiFiles"
Option Explicit
Public Sub GetMultiFiles(ByVal FileName As String, _
strPath As String, strFileName() As String)
Dim strMultiFilename As String
Dim lngFileLength As Long
Dim intNullPos As Integer
Dim i As Integer
intNullPos = InStr(1, FileName, vbNullChar)
' 如果intNullPos = 0,則表示只傳遞過來一個文件。
If intNullPos = 0 Then
ReDim Preserve strFileName(0) As String
' 獲得文件名。
strFileName(0) = Dir(FileName, vbDirectory)
' 減1是為了將文件路徑和文件名之間的分隔符去掉。
lngFileLength = Len(FileName) - Len(strFileName(0)) - 1
' 獲得文件所在的路徑。
strPath = Left(FileName, lngFileLength)
Exit Sub
End If
' 獲得去掉文件路徑后的多文件名組成的字符串長度。
lngFileLength = Len(FileName) - intNullPos
' 獲得多個文件名組成的字符串。
strMultiFilename = Right(FileName, lngFileLength)
' 獲得文件所在的路徑。
strPath = Left(FileName, intNullPos - 1)
'防止在根目錄
If Right(Trim(strPath), 1) = "\" Then
strPath = Mid(strPath, 1, Len(strPath) - 1)
End If
' 此語句用于下面的循環語句。
intNullPos = InStr(1, strMultiFilename, vbNullChar)
' 只要intNullPos不等于零,
' 則表示多個文件名的變量strMultiFilename中有空字符存在,
' 暗示strMultiFilename還有兩個以上的文件名。
i = 0
Do While intNullPos > 0
' 重新定義動態數組。
ReDim Preserve strFileName(i) As String
' 從strMultiFilename中獲得文件名。
strFileName(i) = Left(strMultiFilename, intNullPos - 1)
' 從strMultiFilename中去掉已提取的文件后所得的字符串長度。
lngFileLength = Len(strMultiFilename) - intNullPos
' 將strFileName(i)從strMultiFilename中去掉,
' 從而重新獲得strMultiFilename的值。
strMultiFilename = Right(strMultiFilename, lngFileLength)
' 重新檢查strMultiFilename變量是否有空字符。
intNullPos = InStr(1, strMultiFilename, vbNullChar)
i = i + 1
Loop
' 當第一次獲得intNullPos為零時,仍有一個文件名沒有被提取出來。
ReDim Preserve strFileName(i) As String
strFileName(i) = strMultiFilename
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -