在我的代碼中,我使用了一些表單的代號。表單代號不被識別
問題是,當我通過使用窗體執行宏時,它無法識別代碼名(該變量接收空值)。
可能是什麼原因?
Dim sCodeName As String
' Get the codename of the newly created sheet
sCodeName = Worksheets(atar).CodeName
'atar'是一個變量,其中包含我的一張表的名稱。
謝謝。
在我的代碼中,我使用了一些表單的代號。表單代號不被識別
問題是,當我通過使用窗體執行宏時,它無法識別代碼名(該變量接收空值)。
可能是什麼原因?
Dim sCodeName As String
' Get the codename of the newly created sheet
sCodeName = Worksheets(atar).CodeName
'atar'是一個變量,其中包含我的一張表的名稱。
謝謝。
使用函數來檢查一個代碼名稱
Function WorksheetCodeNameExists(wb As Workbook, sCodeName As String) As Boolean
Dim s As String
Dim ws As Worksheet
WorksheetCodeNameExists = False
For Each ws In wb.Worksheets
If StrComp(ws.CodeName, sCodeName, vbTextCompare) = 0 Then
WorksheetCodeNameExists = True
Exit For
End If
Next
Set ws = Nothing
End Function
圍棋的存在到代碼視圖,向左看到您的VBA項目,其表和模塊。選擇有問題的工作表並查看屬性窗口。
您看到一個名爲「(Name)」的字段和一個名爲「Name」的字段。 「(名稱)」是代碼名稱,「名稱」是工作表名稱。現在比較代碼名稱和輸出。
編輯: @Ralph更快,並提供了一個完美的圖片與完全相同的信息。
我不知道你爲什麼試圖在一個字符串變量中存儲工作表的'CodeName'。然而,你可以通過像MsgBox Worksheets(atar).CodeName'這樣的'MsgBox'替換'sCodeName ='來輕鬆驗證上述結果。如果存在名稱存儲在'atar'中的工作表,那麼您將在消息框中看到'CodeName'。如果沒有這樣的表單,您將收到錯誤消息。順便說一句,下面的插圖可能有助於識別任何給定圖紙的代碼名稱:http://stackoverflow.com/a/42815407/1153513 – Ralph