在我的代码中,我使用了某些表的代号。
问题是,当我使用表单执行宏时,它无法识别代号(变量会返回空值)。
可能是什么原因?
Dim sCodeName As String
' Get the codename of the newly created sheet
sCodeName = Worksheets(atar).CodeName
'atar'是一个变量,包含我的一张纸的名称。
感谢。
答案 0 :(得分:1)
转到代码视图,在左侧,您可以看到包含其工作表和模块的VBA项目。选择有问题的工作表,然后查看属性窗口。
您会看到一个名为“(名称)”的字段和一个名为“名称”的字段。 “(Name)”是代码名称,“Name”是工作表名称。现在将代码名称与输出进行比较。
修改强>: @Ralph速度更快,并提供了完全相同的信息。
答案 1 :(得分: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