在我的代码中,我使用了一些表单的代号。表单代号不被识别
问题是,当我通过使用窗体执行宏时,它无法识别代码名(该变量接收空值)。
可能是什么原因?
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