0

コマンドボタンを使用すると、特定のシート名がワークブックに存在するかどうかを確認して、ユーザーフォームを閉じることができます

Private Sub Close1_Click()
' Protect and Hide

 Dim ws As Worksheet

    For Each ws In ThisWorkbook.Sheets
        If InStr(1, ws.Name, "FSS-TEM-00025") Then
            (ws.Name, "FSS-TEM-00025" ).Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            ActiveWindow.SelectedSheets.Visible = False
            Unload Me
        Else
            Unload Me
        End If
    Next

    'Unload Me
End Sub
4

1 に答える 1

0

これは機能します。If... の後に ws 参照を適切に使用していません。

Private Sub Close1_Click()
' Protect and Hide

Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets
    If InStr(1, ws.Name, "FSS-TEM-00025") Then
        ws.Select 'this line is different
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveWindow.SelectedSheets.Visible = False 'hides the activesheet
        Unload Me
    End If
Next

'Unload Me
End Sub

そして、アクティブシートを使用して選択する代わりに:

ws.Select 'this line is different            
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

ただすることができます

ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
于 2013-01-29T21:41:09.103 に答える