2013-08-20 22 views
2

我有一個工作簿,其中有幾張靜態工作表,但它也需要用戶導入一些工作表,我不知道他們將導入多少工作表。導入的圖紙都將具有相同的格式。如何在公式中使用選定的組合框項目作爲參考

我想開發一個公式,可以使用導入的圖紙名稱作爲參考,以便公式可以查找導入的圖紙中的數據。

現在我有一個動態組合框,其上有所有圖紙名稱。我試圖編寫一個代碼,讓我抓住用戶選擇的工作表(從組合框),然後在公式中使用它。

我發現網站下面的代碼,但是,而不是特定的對象,我有對象的動態數量(張)

Dim ws as Worksheet 
Dim sheetName as ComboBox 
Dim shtName as String 

Set ws = Worksheets("Analysis Sheet") 
Set sheetName = ws.OLEObjects("NameFromActiveXProperties").Object 

shtName = sheetName.Value 

由於公司政策,我不能上傳我的工作表。

我有公式是= MATCH( '分析表' $ A $ 9 & 「*」,shtName $ A $ 10:!$ A $ 136) 其中shtName是我想要的變量設置爲ComboBox中所選項目的引用。 任何人都可以幫助我嗎?

我不擅長描述問題。請讓我知道,如果有什麼不明確的。 非常感謝!

幫助appreicated !!!

+0

甲公式不能(容易地)查找數據的多頁紙張。如果你打算使用multipla表,你需要用VBA來做這件事,或者編寫一個函數來獲得你想要的結果,或者編寫一個用戶定義的函數,它接受一個值的數組並返回每個表中的東西數組(總和,產品,不管)。沒有更多的信息,就不可能回答如何做到這一點。 – jmac

回答

0

有幾種方法可以在這裏使用。最簡單的是組合使用INDIRECT工作表函數與函數,返回表名稱(你只含蓄這裏命名):

=MATCH('Analysis Sheet'!$A$9 & "*", INDIRECT("'" & shtName() & "'" & "!$A$10:$A$136")) 

或者,你可以修改你的shtName功能:

Public Function shtName(SheetRange as string) as range 
    Dim ws as Worksheet 
    Dim sheetName as ComboBox 
    Dim shtName as String 

    Set ws = Worksheets("Analysis Sheet") 
    Set sheetName = ws.OLEObjects("NameFromActiveXProperties").Object 

    shtName = worksheets(sheetName.Value).Range(SheetRange) 
End Function 

...就這樣使用它:

=MATCH('Analysis Sheet'!$A$9&"*", shtName("$A$10:$A$136")) 
相關問題