2014-09-19 93 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

相关问题