内部工作表名称作为变量基于excel单元格中的输入

时间:2016-05-12 06:21:39

标签: excel vba excel-vba

我有以下VBA代码:

    Sub test()
    Dim Variable As String
    Variable = Sheet1.Range("A1").Value
    Sheet2.Select
    Range(Variable).Select
    End Sub

Value in cell A1 = B2:B3

到目前为止,代码完美无缺。现在我想把“Sheet2”部分作为一个变量,就像我对该范围一样。我想将内部工作表名称写入excel单元格以使其变量。到目前为止,我尝试了以下方法,但它没有用。

    Sub test()
    Dim Variable As String
    Variable = Sheet1.Range("A1").Value
    Variable2 = Sheet1.Range("A2").Value
    Variable2.Select
    Range(Variable).Select
    End Sub

Value in cell A1 = B2:B3
Value in cell A2 = Sheet2

你知道如何解决这个问题吗?

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:1)

Sheets(Variable2).Range(Variable).Select

修改

如果您想通过输入代号来获取Sheetname,请使用这样的函数返回正确的工作表名称:

Function getSheet(codename_ As String) As String
'returns the Sheet name corresponding to the Codename
Dim ws As Worksheet

For Each ws In Worksheets

    If ws.codename = codename_ Then

        getSheet = ws.Name
        Exit Function
    End If
Next ws
End Function

然后您可以像Sheets(getSheet("CODENAME")).Select

一样使用它

答案 1 :(得分:-1)

尝试以下代码

Sub test()
    Dim Variable As String
    Variable = Sheet1.Range("A1").Value
    Variable2 = Sheet1.Range("A2").Value
    Worksheets(Variable2).Select
    Range(Variable).Select
End Sub

编辑 - 1

Sheets(Val(Replace(variable2, "Sheet", ""))).Select