2016-09-30 47 views
2

想知道是否有人可以提供幫助,因爲我已經多次嘗試在Excel中創建此功能。VBA - 用戶定義的變量工作表名稱

摘要 - 最終用戶將會把適用後在工作表中指定單元格中的特定小區,推動宏按鈕複製過去幾年假期跟蹤,並創建一個新的工作表,然後重命名複製工作表。

問題 - 當試圖聲明適用的工作表變量工作表名稱問題時,我得到一個類型不匹配錯誤。

感謝有人能幫忙嗎?

下面的代碼在聲明表單時是絆腳石。

Sub test() 

Dim ws as worksheet 
Dim wsn as string 

wsn = sheets("procedures").range("a1").value 
Set ws = wsn 

ws.activate 

End sub 

回答

1

哇,這是羅嗦。

將會把適用後在特定的細胞指定 細胞內的工作

那是什麼意思?

您是否試圖添加工作表並使用單元格A1中的值命名它?
這將執行提供A1包含可用作工作表名稱的文本的工作。

Sub test() 

    Dim ws As Worksheet 

    Set ws = ThisWorkbook.Worksheets.Add 

    ws.Name = Sheets("procedures").Range("a1") 

    ws.Activate 

End Sub 

編輯:
此代碼將複製在範圍A1命名錶,給它一個新名稱,並設置它的參考。

Sub test() 

    Dim ws As Worksheet 
    Dim wsn As String 

    With ThisWorkbook 
     wsn = .Worksheets("procedures").Range("a1") 
     'Code to check the name is valid & the worksheet exists. 
     '.... 

     'Unfortunately you can't set a reference while copying, 
     'so copy it to before the first sheet and then reference the first sheet. 
     .Worksheets(wsn).Copy Before:=.Worksheets(1) 
     Set ws = .Worksheets(1) 
    End With 

    ws.Name = "Some Other Sheet Name" 

    ws.Activate 

End Sub 
+0

我推測'後'是'Year'的拼寫錯誤 –

+0

啊,是的,我現在明白了。 :) –

+0

正確,大量的錯字!大聲笑 – Chewy1985

相關問題