2013-08-25 49 views
0

這是一個子程序我用很多的摘錄:聲明一個變量類型更具體爲集合

Private Sub DeleteFilesNotCreatedToday(myTargetFolder As String) 

Dim myFolder 
Dim myFile 
Dim YesterdayDate As Date 

YesterdayDate = Date 
Set myFolder = CreateObject("Scripting.FileSystemObject").GetFolder(myTargetFolder).Files 

For Each myFile In myFolder 

... 
... 
Next myFile 

爲什麼我不能宣佈myFolder更具體的,而不是變種 - 或者可以嗎?我試過宣佈它作爲一個集合,但它的錯誤......

Private Sub DeleteFilesNotCreatedToday(myTargetFolder As String) 

Dim myFolder As Collection 
Dim myFile 
Dim YesterdayDate As Date 

YesterdayDate = Date 
Set myFolder = CreateObject("Scripting.FileSystemObject").GetFolder(myTargetFolder).Files 

For Each myFile In myFolder 

... 
... 
Next myFile 

回答

2

設置對Microsoft腳本運行時參考,並宣佈它作爲Dim myFolder As Scripting.Folder

編輯

要獲得文件使用的集合腳本運行時庫中的文件集合。一個例子如下所示。

Sub CollectFiles() 

Dim myFile As Scripting.File 
Dim myFolder As scripting.folder 
Set myFolder = CreateObject("Scripting.FileSystemObject").GetFolder("C:\") 

For Each myFile In myFolder.Files 
Next myFile 

End Sub 

EDIT2:如果你要標註MyFolder中的文件的集合,而不是一個文件夾,你可以做以下的方法:

Sub CollectFiles() 

Dim myFile As Scripting.File 
Dim myFolder As Scripting.Files 
Set myFolder = CreateObject("Scripting.FileSystemObject").GetFolder("C:\").Files 

For Each myFile In myFolder 
Next myFile 

End Sub 

它可能會有點混亂,如果人們期望它是一個文件夾而不是文件集合,所以最好重新命名它。

+0

參考已經到位。 'Scripting.Folder'是一個集合? – whytheq

+1

簡短的回答是它代表了一個系統文件夾。在VBE中,您可以按F2查看對象瀏覽器,此視圖中的頂部下拉框允許您查看庫中的對象。這會給你一個不同的對象和屬性/方法的想法。 –

+0

文件夾對象中有一個文件集合,可通過myFolder.Files訪問它 –

相關問題