2016-05-12 50 views
0

我有以下VBA代碼:內部表名稱爲變量在Excel細胞基於輸入

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 

你有什麼想法我可以解決這個問題嗎?

感謝您提前提供任何幫助。

+0

https://msdn.microsoft.com/en-us/library/office/aa221568%28v=office.11​​%29.aspx ?f = 255&MSPPError = -2147217396 –

回答

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

試試wi TH以下代碼

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 
+0

嗨Karthick,謝謝你的回答。唯一的問題是我想引用vba中的INTERNAL表名,而不是它在excel前端視圖中的名稱。例如,當我將Sheet2重命名爲「Input」時,您的代碼不再運行。內部工作表名稱將保留Sheet2;因此,我想在我的代碼中使用內部名稱。你有什麼想法如何解決這個問題? – Michi

+0

請參閱編輯後 –

+0

HI Karthick,我已將代碼更改爲以下,但它不起作用:-(Sub test() Dim Variable As String Variable = Sheet1.Range(「A1」)。Value variable2 = Sheet2.Range(「A2」)。Value 表(Val(Replace(variable2,「Sheet」,「」)))。Select Range(Variable).Select End Sub – Michi