显示要添加工作表的消息

时间:2016-07-14 14:21:38

标签: excel-vba vba excel

我有一个下拉列表,其中包含值"是" /" no" (单元格F 20)和下一个单元格中的按钮(单元格G 20)。 如果用户选择"是",则可以看到按钮,他可以点击添加"表格" 如果他选择" no",则隐藏按钮。

我的问题:我写了一个代码,如果用户选择了"是"并且没有添加新工作表,它应该将值从下拉菜单恢复为" no"在这种情况下。

我不确定,我的代码中包含哪些内容可以满足我的目的?

工作表代码

Private Sub Worksheet_Change(ByVal Target As Range)
Dim worksh As Integer
Dim worksheetexists As Boolean
Dim str1 As String
ThisWorkbook.Unprotect Password:="xyz"
If Target.Address = "$F$20" Then
    Select Case UCase(Target)
        Case Is = "YES": Shapes("Button 8").Visible = msoTrue
        Case Is = "NO": Shapes("Button 8").Visible = msoFalse

模块代码(按钮)

Sub insertSheet()
    Application.ScreenUpdating = False
    Dim worksh As Integer
    Dim worksheetexists As Boolean
    Dim ws As Worksheet
    worksh = Application.Sheets.Count
    worksheetexists = False
    ThisWorkbook.Unprotect Password:="xyz"
    For x = 1 To worksh
        If Worksheets(x).Name = "Sheet" Then
            worksheetexists = True
            MsgBox "Sheet Already Exists"
            'Debug.Print worksheetexists
            Exit For
        End If
    Next x
    If worksheetexists = False Then
       Sheets("BrownSheet").Visible = True
        ActiveWorkbook.Sheets("BrownSheet").Copy _
       After:=ActiveWorkbook.Sheets("BrownSheet")
       Sheets("BrownSheet").Visible = False
       ActiveSheet.Name = "Sheet"
       ActiveSheet.Protect Password:="xyz", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End If
    ThisWorkbook.Protect Password:="xyz"
End Sub

请帮助!!

由于

1 个答案:

答案 0 :(得分:0)

将此代码放在ThisWorkbook模块中,并对工作表名称进行必要的更改。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Worksheets("mySheet").Range("F20").Value = "Yes" Then

    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = "Sheet" Then
            Dim bOk As Boolean
            bOk = True
            Exit For
        End If
    Next

End If

If Not bOk Then
    MsgBox "Please add the sheet before saving!"
    Cancel = True
End If


End Sub

有关Before Save的更多信息,请参阅MSDN Article