2017-07-20 10 views
0

ダブルクリックしたときに、列Bのセルのテキストで指定されたワークシートを選択するために、このコードを作成しました。 しかし、私は1つのIF条件で自分のコードを増やそうとしています: セルに名前のついたワークシートがない場合は、ダブルクリックしてmsgbox( "Hello")を表示します。 その後、クリックしたシート(Target.Text)した場合、私は を考えたとしてダブルクリックしたセルの値をワークシートに追加する方法

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 

この条件は動作しません= TRUE次に

+0

をあなたのコードに、このような機能をコピーしてイベントハンドラを変更します/ questions/6688131/test-if-check-if-sheet-exists) – sourceCode

答えて

0

Sheets(Target.Text)あなたはブール値と比較することはできませんWorksheet -object、です。さらに、シートが存在しない場合、ランタイムエラーが発生します。あなたが望むのは、ワークシートが存在するかどうかをチェックする機能です。あなたは多くの例を見つけることができ、例えばon stackoverflow

は、[Testまたはシートが存在するかどうかを確認](https://stackoverflow.comの可能性のある重複

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 
関連する問題