我在我的Excel中有2個工作表,第一個表格允許我從下拉列表中選擇一個計算方法並輸入變量進行計算(以綠色單元格顯示,藍色列顯示一些常數)。結果條目將從我的第二個工作表(數據庫)中搜索相應的計算公式,然後將公式粘貼到工作表1中,我需要公式來使用工作表1中的單元格而不是數據庫中的單元格進行計算。通過評估和演示用VLOOKUP :=Eval(VLOOKUP(A3,Database!A2:E10,5,FALSE))
組合我將得到的結果的計算式採用細胞從excel返回公式與相對單元格
Function Eval(ref As String)
Eval = Application.Evaluate(ref)
End Function
:
目前我創建稱爲評估和演示的用戶定義的函數,如下我的數據庫,如何在計算過程中如何實現公式在表單1中獲取單元格的結果?
嗨德克,非常感謝你,我張貼的問題只是一個簡化版本。在這種情況下,我可能會考慮超過50個方程式,因此選擇公式會很長。但在第二種情況下,由於某種原因,如果我將UDF直接複製到模塊中,它將與我以前的Eval函數一樣。你能否爲我提供一些有關該UDF的額外幫助? –
@LiuRoye'Evaluate'函數是從表單執行的,而不是從應用程序執行的。如果像'Sheets(「Sheet1」)。評估(...)'那麼它總是使用「Sheet1」。如果直接用作'Application.Evaluate(...)',那麼它將使用'ActiveSheet'。如果使用幾張紙,Application.Evaluate(...)'可能會失敗。在Sheet2 A1'A2'和A2中進行。在Sheet1中,A2放入'1'。現在在Sheet1中使用'Sheet2!A1',它將顯示'1'。但是如果你轉到sheet2並重新進入'A1'然後回到sheet1,那麼你的公式將會顯示'2'(我的代碼應該仍然顯示1) –
@LiuRoye避免所有問題的最好方法是使用像「Sheet1!B2 * Sheet1!C2 * Sheet1!D2」這樣的全參考。這樣它就應該按照你想要的方式做,不管是什麼;) –