我现有的代码使用ActiveX复选框来修改基于单元格“I16”的工作簿中工作表的 Headers 和可见性 . 我想要做的是设置一个将要修改的更改事件,如果用户更改了单元格“I16”(这是工作表的 Headers )的内容,则允许进一步修改工作表 .
该代码旨在执行以下操作:
-
确认用户打算更改单元格"I16"的内容
-
如果用户不打算进行更改,请撤消更改并退出子
-
如果用户DID打算进行更改,请将工作表的名称更改为新名称,询问用户是否要清除先前命名的工作表中的数据 . (这里的想法是,如果我们将工作表名称从Cookies更改为Cakes,即使工作表仍然相同,Cookies数据也会被清除 . )
-
如果用户想要清除数据,代码将清除从Column(变量)到LastRow上方的行的特定单元格范围(保存LastRow中的任何公式,以防意外删除)
-
如果用户不想清除数据,代码将单独保留指定的单元格区域,将设置新的工作表名称,然后退出该子程序 .
问题?代码确实......没有 . 我改变了目标地址,没有任何反应 . 我调整代码,调整范围等,无处可去 .
为您即将见证的业余编码提前道歉,并感谢您对此的帮助 .
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Dim sheetName As String
If Target.Address = "I16" Then
If WorksheetExists(sheetName) Then
Exit Sub
Else
MsgBox "Are you sure you want to change" & vbNewLine & "the name of this Allowance?", vbYesNo + vbQuestion, "Confirm Name Change"
If Yes Then
Set ws = Sheet34
ws.Name = sheetName
MsgBox "Would you like to clear the data from" & vbNewLine & "this Allowance?", vbYesNo + vbQuestion, "Confirm Data Clear"
If Yes Then
LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
Worksheets.Sheet34.Rows.Range("C9:LastRow, -1", D9:LastRow, -1, E9:LastRow, -1, F9:LastRow, -1, H9:LastRow, -1, J9:LastRow, -1, L9:LastRow, -1, N9:LastRow, -1, P9:LastRow, -1).Clear
Else
Exit Sub
End If
Else
Application.EnableEvents = False
Application.Undo
Exit Sub
Application.EnableEvents = True
End If
End If
End If
End Sub
1 回答
您没有捕获
MsgBox
的返回值 .