有没有办法使用某个单元格(已使用该工作表填充)的工作表名称来填充另一个单元格?

时间:2016-07-18 17:27:38

标签: excel excel-vba excel-formula vba

让我试着说清楚:

Here's an image that illustrates what I'm trying to do.

基本上,我的目标是有一个公式,我可以放入单元格A2(或宏,如果需要),它将插入单元格B2来自的工作表的名称。在这种情况下,那将是Sheet2。我已经通过宏录制器尝试了一下,但是我无法按照我想要的方式工作。

理想情况下,我可以选择一个单元格(在本例中为单元格A2)并激活一个宏或放入一个公式,该公式将使用Sheet右侧的单元格填充该单元格(A2) (B2)来自。

非常感谢您的帮助,对于我应该使用什么或如何做到这一点的任何指导都将非常感激。

1 个答案:

答案 0 :(得分:0)

这是一个UDF,它将为简单的=SheetX!RANGE公式提取工作表名称。如果有多个工作表引用或根本没有工作表,它也会发出警报。

将其放在标准模块和单元格类型=ReturnSheet(B2)

Function ReturnSheet(rng As Range) As String

    Dim sFormula As String
    sFormula = rng.Formula

    If InStr(1, sFormula, "!") = 0 Then

        Dim sSheet As String
        sSheet = "No sheet precedents found!"

    Else

       If UBound(Split(sFormula, "!")) = 1 Then


            sSheet = Mid(sFormula, 2, InStr(1, sFormula, "!") - 2)

        Else

            sSheet = "Multiple Sheet precendents!"

        End If

    End If

    ReturnSheet = Replace(sSheet,"'","") 'replace single quote in sheet names that has spaces

End Function
相关问题