有没有人知道如何从此示例单元格公式中获取以下字符串,例如:
式: =主!A1:A10
通缉字符串: 主
我想用VB.net或VBA来做这件事。有什么方法可以做到这一点?我应该只使用字符串函数并应用条件,使其获得所需的输出?或者在vb.net中的excel interop中是否有函数可以让我这样做?
我只需要一些小代码片段。我将感激你的帮助!
答案 0 :(得分: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
返回该工作表的名称。
优雅地,这不依赖于任何字符串解析。如果公式取决于多个工作表,您需要增强此功能,但这将帮助您入门。
答案 1 :(得分: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
我希望这一改变能够满足你的需求。