這非常複雜,但我會盡我所能對其進行儘可能清晰的解釋。請讓我知道,如果它沒有意義。Excel中嵌套的INDIRECT函數 - 在一臺計算機上工作,但在另一臺計算機上返回#REF
我有兩個工作簿 - 輸入和輸出。由於系統的工作方式,它們必須是分開的,即「提名者」將所有輸入輸入到簡單的輸入工作簿,輸出工作簿將其格式化爲可供使用的格式。爲了使其工作,輸出工作簿必須引用輸入工作簿來檢索值。
我一直在測試這兩個工作簿正在打開。
爲了實現這一點,我使用嵌套INDIRECT
函數;第一個創建文件路徑,調用命名範圍,第二個告訴Excel解釋該文件路徑並檢索值。
我開始用INDIRECT
建立一個文件路徑:
=INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$11"
這將返回類似:
\\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11
然後窩它在另一個爲了得到Excel中讀取路徑:
=INDIRECT("'"&INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$12")
這成功返回單元B12從input_s值heet_location - 一個命名範圍,它是一個文件目錄。爲了論點的緣故,我們可以說它會回報:
Captain America's underpants
所以上面的工作非常好。爲了我。但是,在其他用戶的機器上,它不起作用。我試圖挖,並制定了以下內容:
- 文件之間的連接出現在他們的系統太 - 探索數據>編輯鏈接顯示它們具有相同的,工作接口和我一樣。
- 生成的文件路徑是相同的;我構建了一個宏,向用戶展示它,在3臺機器上,每次都是一樣的。
- 最關鍵的(也是令人困惑的),非嵌套
INDIRECT
公式確實工作。這是只有在我的電腦上才能使用的嵌套公式。在其他用戶的計算機上,它會返回#REF
錯誤。
有沒有人有任何想法,爲什麼這可能是這種情況?我很茫然。
感謝您閱讀這個遊戲。
這只是一種鏡頭,但我不知道它是否會有所幫助,而是在其他用戶的機器上打開的輸入工作簿,因爲它必須是用於間接功能的。你不能(至少不是VBA,我知道)從鏈接的公式更新數據而不打開工作簿。 Excel在關閉鏈接的工作簿時存儲該鏈接,但由於您使用的是間接鏈接,因此它不會存儲鏈接,因爲實際上,您尚未創建鏈接。如果在那裏的鏈接,你會得到提示更新它,一切都會好起來的。如果這不起作用,我們可以研究其他的東西。 –
相關:http://stackoverflow.com/questions/9259862/executeexcel4macro-to-get-value-from-closed-workbook和http://stackoverflow.com/questions/9033656/copying-from-closed-workbook-excel -vba – JMax
謝謝Scott,好點。答案是肯定的,它是開放的。我編輯了這個問題來反映這個細節。 – seegoon