標題:
[發問]
Function語法想修改用在Excel2007版
[打印本頁]
作者:
luke
時間:
2012-4-10 15:59
標題:
Function語法想修改用在Excel2007版
H超版, 各位大大
小弟有個舊Excel2003檔案vba使用With Application.FileSearch無法用在Excel2007, 語法如下
煩請先進指導該如何修改才能使用於Excel2007版
Public Function FilesPathFind(FindPath, FindFileName, Data)
Dim ss As SearchScope
Dim sf As ScopeFolder
Dim lngCount As Long
With Application.FileSearch
.NewSearch
.Filename = FindFileName
.LookIn = FindPath
.SearchSubFolders = True
.FileType = msoFileTypeBinders
If .Execute <> 0 Then
Data = 1
Else
Data = 0
End If
End With
End Function
作者:
Hsieh
時間:
2012-4-10 18:02
回復
1#
luke
看不懂你這個函數的作用
若要計算檔案類型的數量,試試
Public Function FilesPathFind(FindPath$, FindFileName$)
Dim fs$
fs = Dir(FindPath & FindFileName)
Do Until fs = ""
FilesPathFind = FilesPathFind + 1
fs = Dir
Loop
End Function
複製代碼
作者:
luke
時間:
2012-4-12 20:18
回復
2#
Hsieh
H超版
先謝謝你的答覆
這個功能函數是VB的用語, 也是小弟所提去搭配兩個資料夾匯入相同檔案名稱, 需匯入多達400個以上檔案,
每次匯入兩個同檔名再做分類處理, DATA利用ComboBox呼叫, 內部使用大量暫時記憶體整理, 最後得到約1萬資料列
測試後仍無法克服問題
以上
作者:
Hsieh
時間:
2012-4-12 22:42
回復
3#
luke
你的函數功能實在無法從程式碼中理解
整體程式運作不可能從片段且無法執行的程式去猜測你要的功能
以你的函數來看
FilesPathFind最後要傳回的是甚麼東西?
Data是引數,但你卻要在函數執行中變更,不知有何意義?
以你的函數程式碼解釋如下
在FindPath資料夾內搜尋名為FindFileName的文件夾檔案
如果找到就將Data改成1否則改成0
這樣的邏輯似乎是錯誤的
所以只能告訴你這是錯誤,並無法為你解決問題
作者:
luke
時間:
2012-4-13 22:00
回復
4#
Hsieh
謝謝H大
你的判斷是對的, 現程式已作如下修改後OK
fs = Dir(FindPath & "\" & FindFileName)
If fs = "" Then
FData = 0
Else
Data = 1
感謝協助
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)