Чтобы использовать методы и член объекта, вам сначала нужно создать этот объект. Если вы его не создали (переменная, которая должна содержать объект, не инициализируется), но вы пытаетесь использовать его методы или переменные, вы получите эту ошибку.
Иногда вы можете просто забыть инициализировать .
Отредактировано: new не может вернуть значение null, но исключение огня при ошибке. Давно это было на некоторых языках, но не больше. Спасибо @John Saunders за указание на это.
Для ответа выше, он работал для меня, когда я вынул «ТЕКСТ» в MacID:
Sub LoopThruFiles()
Dim mydir As String
Dim foldercount As Integer
Dim Subjectnum As String
Dim strpath As String
Dim strfile As String
ChDir "HD:Main Folder:"
mydir = "HD:Main Folder:"
SecondaryFolder = "Folder 01:"
strpath = mydir & SecondaryFolder
strfile = Dir(strpath)
'Loop through each file in the folder
Do While Len(strfile) > 0
If Right(strfile, 3) = "cef" Then
MsgBox (strfile)
End If
strfile = Dir
Loop
End Sub
Gianna, вы не можете использовать DIR
, как в VBA-EXCEL 2011. Я имею в виду, что подстановочные знаки не поддерживаются. Вы должны использовать MACID для этой цели.
См. Этот пример кода (TRIED AND TESTED)
Sub Sample()
MyDir = ActiveWorkbook.Path
strPath = MyDir & ":"
strFile = Dir(strPath, MacID("TEXT"))
'Loop through each file in the folder
Do While Len(strFile) > 0
If Right(strFile, 3) = "csv" Then
Debug.Print strFile
End If
strFile = Dir
Loop
End Sub
См. Эту ссылку для получения дополнительной информации о MACID
Тема: Функция MacID
Ссылка: http://office.microsoft.com/en-us/access-help/macid-function-HA001228879.aspx
EDIT:
Если эта связь когда-либо умирает, я сомневаюсь, вот выдержка.
Функция MACID
Используется на Macintosh для преобразования 4-значной константы в значение, которое может использоваться Dir, Kill, Shell и AppActivate.
Синтаксис
MacID (постоянный )
Требуемый константный аргумент состоит из 4-х символов, используемых для указания типа ресурса, типа файла, подписи приложения или события Apple, например, TEXT, OBIN, «XLS5» для файлов Excel («XLS8») для Excel 97), Microsoft Word использует «W6BN» («W8BN» для Word 97) и т. д.
Примечания
MacID используется с Dir и Kill для указания Macintosh тип файла. Поскольку Macintosh не поддерживает * и? в качестве подстановочных знаков вы можете использовать четырехсимвольную константу, чтобы идентифицировать группы файлов. Например, следующий оператор возвращает файлы типа TEXT из текущей папки:
Dir («SomePath», MacID («ТЕКСТ»))
MacID используется с Shell и AppActivate для укажите приложение, использующее уникальную подпись приложения.
blockquote> blockquote> blockquote> blockquote>HTH
If Dir(outputFileName) <> "" Then
Dim ans
ans = MsgBox("File already exists.Do you wish to continue(the previous file will be deleted)?", vbYesNo)
If ans = vbNo Then
Exit Sub
Else
Kill outputFileName
End If
End If
For listitem = 0 To List6.ListCount() - 1