標題:
[發問]
在Excel 2003錄製的巨集,在Excel2007/2010卻發生執行錯誤'9' or '445'
[打印本頁]
作者:
waterful.tw
時間:
2012-4-27 14:39
標題:
在Excel 2003錄製的巨集,在Excel2007/2010卻發生執行錯誤'9' or '445'
以下是我在Excel 2003
Sub Get_TEXT()
Dim MyBook, LinkBook As Workbook, _
MySht, LinkSht, BaSht, WorkSht As Worksheet, _
MyPath, FindFile, FileCunt, x, Xm As Long, _
RngEnd As Range, uDate As Date
Set FindFile = Application.FileSearch
With FindFile
.LookIn = MyPath: .Filename = "*.csv"
.SearchSubFolders = False: .MatchTextExactly = True
.FileType = msoFileTypeAllFiles
FileCunt = .Execute()
End With
If FileCunt = 0 Then _
MsgBox "※找不到要匯入的文字檔!!! ", 0 + 48, ">>提示訊息": Exit Sub
Application.ScreenUpdating = False
'...
End Sub
複製代碼
但在Excel 2007/2010卻發生執行錯誤,bug是出現在同一行
Set FindFile = Application.FileSearch
複製代碼
不知道在Excel 2007/2010時,此行要如何修改?
作者:
Hsieh
時間:
2012-4-27 16:43
回復
1#
waterful.tw
FileSearch
於2007版本以後已經不支援此物件
可使用Dir函數或是GetOpenFilename來取代
作者:
waterful.tw
時間:
2012-4-30 14:48
請問Hsieh大大,若我將原先程式碼
Set FindFile = Application.FileSearch
With FindFile
.LookIn = MyPath: .Filename = "*.csv"
.SearchSubFolders = False: .MatchTextExactly = True
.FileType = msoFileTypeAllFiles
FileCunt = .Execute()
End With
複製代碼
改為下列程式碼
Set FindFile = Dir(MyPath & "*.csv")
Do While FindFile <> ""
FileCunt = FileCunt + 1
FindFile = Dir
Loop
複製代碼
在Dir函數設定的那行,卻發生"此處需要物件 (錯誤 424)"錯誤,請問我該如何修改?
PS.不太會用Dir函數的新手留
作者:
Hsieh
時間:
2012-4-30 14:56
回復
3#
waterful.tw
FindFile是字串不是物件不能使用SET陳述式
FindFile = Dir(MyPath & "*.csv")
Do While FindFile <> ""
FileCunt = FileCunt + 1
FindFile = Dir
Loop
複製代碼
作者:
waterful.tw
時間:
2012-4-30 15:36
感謝Hsieh大大,看來我後面有一大段程式要修改了,等有問題在上來發問囉~ ^^
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)