2017-04-20 76 views
-2

在我的代码中,我使用了一些表单的代号。表单代号不被识别

问题是,当我通过使用窗体执行宏时,它无法识别代码名(该变量接收空值)。

可能是什么原因?

Dim sCodeName As String 

' Get the codename of the newly created sheet 
sCodeName = Worksheets(atar).CodeName 

'atar'是一个变量,其中包含我的一张表的名称。

谢谢。

+1

我不知道你为什么试图在一个字符串变量中存储工作表的'CodeName'。然而,你可以通过像MsgBox Worksheets(atar).CodeName'这样的'MsgBox'替换'sCodeName ='来轻松验证上述结果。如果存在名称存储在'atar'中的工作表,那么您将在消息框中看到'CodeName'。如果没有这样的表单,您将收到错误消息。顺便说一句,下面的插图可能有助于识别任何给定图纸的代码名称:http://stackoverflow.com/a/42815407/1153513 – Ralph

回答

0

使用函数来检查一个代码名称

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 
1

围棋的存在到代码视图,向左看到您的VBA项目,其表和模块。选择有问题的工作表并查看属性窗口。

您看到一个名为“(Name)”的字段和一个名为“Name”的字段。 “(名称)”是代码名称,“名称”是工作表名称。现在比较代码名称和输出。

编辑: @Ralph更快,并提供了一个完美的图片与完全相同的信息。