2014-09-19 58 views
0

有誰知道如何從例如該樣本單元格公式如下字符串:如何獲得僅從單元格公式的WS名稱引用

公式: =主A1:A10

通緝字符串: 主要

我想使用VB.net或VBA來做到這一點。我可以做什麼的可能方法是什麼?我是否應該爲此使用字符串函數並應用使其獲得所需輸出的條件?或者在vb.net的excel interop中有函數會讓我這樣做?

我只是需要一些小的代碼片段。我會感謝您的幫助!

回答

0

你可以使用這個我認爲這將工作:

dim SheetName as string 
SheetName = mid(YourSheet.Range("A1").FormulaR1C1.split("!")(0),2) 
if InStr(SheetName, "(") <0 then 
    SheetName = split(SheetName,"(")(1) 
end if 

我希望這種變化將滿足你的追求。

+0

謝謝。如果我的公式是= SUM(main!A1:A10),它並不僅僅是主要的。它包含SUM(字符串。 – TDL 2014-09-20 07:22:21

0

爲了讓你開始,假設A1包含你的公式。

Sub test() 
    Dim rng As Excel.Range 
    Set rng = Excel.Range("$A$1")  
    Debug.Print rng.Precedents.Worksheet.Name  
End Sub 

Precedents爲您提供了該小區所依賴的Range。這可能是也可能不是連續的。 Range對象具有Worksheet屬性(將其視爲Range的父級),Name返回該工作表的名稱。

優雅地說,這不依賴任何字符串解析。如果公式依賴於多個工作表,則需要增強此功能,但這會讓您開始。

+0

這對我來說應該是一個好的開始,會研究這個功能。謝謝。 – TDL 2014-09-20 07:23:02

相關問題