我开发了这段代码,以便在双击 B 列时选择一个以单元格文本命名的工作表。 但是我正在尝试使用一个 IF 条件来增加我的代码: 如果没有以我双击的单元格命名的工作表,则显示消息框("您好"( 然后使用我双击的单元格的名称创建工作表。
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,则
Sheets(Target.Text)
是一个Worksheet
对象,你不能将其与布尔值进行比较。此外,如果工作表不存在,您将收到运行时错误。你想要的是一个检查工作表是否存在的函数。你可以找到很多例子,例如在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