gpt4 book ai didi

excel - 如何显示一个确认弹出窗口,允许使用宏编辑 Excel 文件的任何单元格中存在的特定文本?

转载 作者:行者123 更新时间:2023-12-04 20:22:16 29 4
gpt4 key购买 nike

我要实现的是如果用户尝试修改包含文本“请勿编辑”的单元格,则显示弹出窗口。只有接受确认按钮,用户才能修改单元格值。
如何将此条件应用于可以增长的列,并且文本“不要编辑”的位置可以存在于第 4 列的任何单元格上?
我尝试使用此宏,它仅用于检测第 4 列的 D1、D2 和 D3 列单元格的值是否发生变化,然后显示一个弹出窗口。但我不知道如何显示一个弹出窗口来请求确认以允许在用户接受时编辑单元格,否则保留“不编辑”值。
这是我第一次尝试在用户更改值时显示消息:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Row = 1 Or Target.Row = 2 Or Target.Row = 3 Then
Beep
MsgBox "Do you really want to change it?", vbYesNo + vbQuestion
End If
End If
End Sub
这是我的工作表样本
enter image description here

最佳答案

考虑以下修改后的代码版本,它将抛出 MsgBox选择任何单元格时提示,其中所选行中的第 4 列包含“不要编辑”。
它检查是否 Column 4 (Column D)在所选单元格的行中包含 "don't edit" .如果为真,则触发 msgbox提示您的用户。Return变量使用 捕获用户的响应(是或否)。返回值 对于单击的按钮,如果 Yes 则允许选择(并因此允许编辑)返回或选择单元格A1如果 No被退回。

Private Sub Worksheet_SelectionChange(ByVal target As Range)
Dim Result As Long
If Selection.Count = 1 Then
If LCase(Me.Cells(target.Row, 4)) = "don't edit" Then
Beep
Result = MsgBox("Do you really want to change it?", vbYesNo + vbQuestion)
If Result = 6 Then '6 is the return value for the "Yes" button.

Else
Range("A1").Select
End If
End If
Else
'Do something if more than one cell is selected.
MsgBox "More than one cell is selected.", vbCritical, "You can't do that"
Range("A1").Select
End If
End Sub
注: Range("A1").Select是用户单击 No 时您要执行的任何操作的占位符在 Msgbox .
注:您可以使用 MsgBox 返回常量而不是值,例如 vbYesvbNo - 有关文档,请参见下文。

MsgBox Function - 有关 MsgBox 函数的更多信息,包括按钮参数(哪些常量/值返回哪个按钮单击等),请参见此处

关于excel - 如何显示一个确认弹出窗口,允许使用宏编辑 Excel 文件的任何单元格中存在的特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69669273/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com