2013-08-25 2 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 Scripting выполнения и объявить его как 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 вы можете Pres 2 F2 просмотреть браузер объектов, верхний раскрывающийся список в этом представлении позволяет вам смотреть на объекты в библиотеке. Это даст вам представление о разных объектах и ​​свойствах/методах. –

+0

У объекта папки есть коллекция файлов, в которую он может быть доступен через myFolder.Files –

Смежные вопросы