2013-04-17 41 views
2

我有以下外觀的工作簿:函數得到特定SHEETNAME

enter image description here

此工作簿第一片材,「Resultat」,從工作簿中的另一片材,計算數據,並提出它們作爲圖片顯示。

爲了使計算正常工作,標記紅色方塊中顯示的名稱必須相同且相對應,否則值將爲#####,如條目2所示(單元格A5的工作原理並具有與圖紙編號2相同的名稱,但單元格A8不起作用,因爲它不具有與圖紙編號3相同的名稱)。

我的問題基本上是否可以使用一個函數來輸入特定單元格中的工作表名稱。在這個例子中,我想cell A5自動獲取工作表的名稱與index 2,cell A8等於工作表與index 3等。

現在我要手動完成這項工作,但如果這樣做可以實現自動化,這將非常有幫助,因爲我有很多這些工作簿和名稱會不時變化。

回答

2

使用這個公式

=MID(CELL("filename",A1), FIND("]", CELL("filename", A1))+ 1, 255) 

以上將給你當前表的名稱

如果您將A1的引用更改爲相關工作表,則會提取該名稱。

例:

=MID(CELL("filename",Sheet1!A1), FIND("]", CELL("filename", Sheet1!A1))+ 1, 255) 

這會給你Sheet1

+0

上的公式,只要確保在開始試驗之前至少保存了一次工作簿(不像我) – MikeD

+0

它的工作原理。我沒有得到公式首先工作,但意識到這是因爲我有不同的本地語言設置,那麼你。顯然,瑞典語言設置使用;作爲分隔符代替, –

+0

samma som tyska – MikeD

1

創建一個VBA模塊,並輸入以下代碼:

Public Function SheetNameByIndex(Index As Integer) As String 
    SheetNameByIndex = ActiveWorkbook.Sheets(Index).Name 
End Function 

現在,在您的工作簿的任何地方,你可以做

=sheetnamebyindex(2) 
=sheetnamebyindex(A1) 
+0

+1謝謝您的回答。我正在與Sids答案,雖然因爲我寧願使用VBA –