我的問題是我需要使用VBA打開一些excel文件(用於excel 2007)並提取數據。我想要打開的所有文件都稱爲「January.xlsx的利潤」,「February.xlsx的利潤」等等,僅更改月份名稱,所以我想打開一個名爲「profit for *」的文件。文件夾中有另一個名爲「total revenue.xlsx」的文件,我不想打開它。如何使用vba打開具有通用名稱的文件中的某些excel文件夾
如果可能,我需要代碼從文件夾中的文件中提取數據,無論文件夾在哪裏,因爲我將此代碼發送給我的同事放入其自己的文件夾中,這些文件夾具有相同的文件名格式但是不同的路徑。
我有代碼提取數據,它的工作原理,但它可以導入文件夾中的所有數據或根本沒有!
任何對此的幫助將非常感謝,因爲我是一個實習生,試圖讓他的腳在門口,這對我來說將是一個很大的突破!
更多信息
到目前爲止,我有下面的代碼(因爲我覺得他們可能是不必要的我沒有將昏暗的?),這是我從其他網站抽取。我也發現,在試圖打開文件夾中的所有文件時,它試圖打開它自己!如果任何人都可以建議如何改善這一點,我會非常感激。我一直沒有使用VBA,並且一直在找這份工作非常艱難!
出現的錯誤框有時會說我需要一個'object'作爲變量sfilename,並且我不確定如何做到這一點而不會搞亂另一部分代碼。
sub import data()
ChDir ThisWorkbook.Path
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set sfolder = objFSO.GetFolder(ThisWorkbook.Path)
For Each sfilename In sfolder.Files
If sfilename <> "Total Revenue.xlsx" Then
Workbooks.Open Filename:= _
sfilename *'open the file*
Set sfilename = ActiveWorkbook *'set the file name as sfilename, so the single piece of code will work with the copy-loop*
b = Sheets.Count *'for the data-import loop*
Call ImportData *'call in the loop*
sfilename.Close *'close the file*
End If
Next
end sub
嗨,馬克在SO,這個區域是保留給答案。我將編輯您的文章以包含此部分,並且您可以請求將其刪除。好的? :) – Fionnuala 2011-01-14 16:20:47