我已經爲Excel 2010編寫了一個宏,它爲包含任何文件和子文件夾的文件夾建立索引。這樣做的目的是管理從包含數百個文件的文件夾目錄中提取特定細節,其中只有一些文件是Excel文件,而其中只有一些文件與此細節相關。Excel VBA - 選擇確定彈出菜單/對話框
該宏提供了一些基本的細節和文件的超鏈接(包括xls,doc,pdf等)。然後,vba代碼將插入一個單元格公式,以從工作簿的特定位置(不打開它們)提取單個單元格值,並在其中存在Excel文件並生成#Ref!否則錯誤。由於單元格公式是通過FileItem.Path和文本操作創建的,因此該公式始終引用「摘要」工作表,以適合有意義的文件。
問題是剩餘的Excel文件中沒有包含此名稱的工作表,該名稱提示Excel爲用戶提供彈出對話框「選擇表」,以供用戶手動從選項中進行選擇。我需要一種方法在vba代碼中進行管理。我可以管理一些潛在的結果,包括選擇OK來每次選擇第一個選項,取消和忽略請求,跳過這些實例等,但是我不能讓宏反覆中斷用於用戶輸入。
我已經嘗試在代碼中的各個點插入Application.DisplayAlerts = False,但它不會阻止該對話框。
任何幫助/建議,非常感謝。
感謝
編輯
我原本:
Cells(r, 5).Formula = "='" & Left(File.Path, InStr(File.Path, File.Name) - 1) & "[" & File.Name & "]Summary'!$D$3"
...產生下面的單元格的公式:
='C:\Documents and Settings\[TEST]Summary'!$D$3
我認爲不可能從vba代碼訪問關閉的工作簿,所以這可以爲我工作。我只需要對Range的語法做一點澄清。目前給我一個錯誤'對象'_Application'失敗'錯誤1004方法'範圍' 我也嘗試創建一個文本變量來保存路徑並在Range()中使用,但沒有成功。 有什麼建議嗎? – kavmeister 2011-03-03 17:30:22
由於我沒有明確的文件路徑或名稱(由於子文件夾加上不一致的命名約定),我必須動態構建位置。因此,對於您的解決方案,我不確定適當的方括號,撇號和引號需要使用此代碼。我一直在嘗試使用以下公式的變體: 'Application.Range(「[」&FileItem.Path&「] Summary!$ D $ 3」)。Value' ..它的計算結果如下: 'Application.Range([C:\ Documents and Settings [TEST] Summary!$ D $ 3).Value' – kavmeister 2011-03-03 17:31:21
如果有人能夠指導我如何使用StackOverflow來評論/回覆將會有幫助。新手。 – kavmeister 2011-03-03 17:32:11