我开发了这段代码,当我双击它时,选择一个以B列上的单元格文本命名的工作表。 但我试图用一个IF条件增加我的代码: 如果没有以单元格命名的工作表,我双击显示一个msgbox(“你好”) 然后用双击的单元格名称创建工作表。
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 2 Then
If Sheets(Target.Text) = True Then
Sheets(Target.Text).Visible = xlSheetVisible
Sheets(Target.Text).Select
Sheets(Target.Text).Range("A2").Select
Cancel = True
Else
MsgBox ("hello")
End If
End If
End Sub
这种情况不像我想象的那样有效 如果Sheets(Target.Text)= True则
答案 0 :(得分:0)
Sheets(Target.Text)
是Worksheet
- 对象,您无法将其与布尔值进行比较。此外,如果工作表不存在,您将收到运行时错误。你想要的是检查工作表是否存在的功能。您可以找到许多示例,例如on stackoverflow
将此类函数复制到您的代码中并更改您的事件处理程序
If SheetExists(Target.Text) Then
Sheets(Target.Text).Visible = xlSheetVisible
Sheets(Target.Text).Select
Sheets(Target.Text).Range("A2").Select
Cancel = True
Else
MsgBox ("hello")
End If