excel - VBA - 撤消组合框更改
问题描述
我似乎无法让这段代码工作......我基本上想说,如果组合框发生变化并且范围不为空,请询问用户是否真的想要清除范围并进行更改。如果他们说不,则撤消组合框更改回原来的样子。我的 Sub 选项不显示更新前,只显示更改和其他一些。
我试图事先捕获该值并将其设置回该值,但它不起作用。
欢迎任何想法!
Sub ComboBox_UPC_C18_Change()
Dim ComboBox_UPC_C18_Value As String
Dim Location As Range
Set Location = Range("Location_C18")
If Application.WorksheetFunction.CountA(Location) = 0 Then
Exit Sub
ElseIf MsgBox("Are you sure you want change the UPC (clearing the row's data)?", vbYesNo, "User Confirmation") = vbYes Then
Location.Value = ""
ElseIf MsgBox("Are you sure you want change the UPC (clearing the row's data)?", vbYesNo, "User Confirmation") = vbNo Then
ComboBox_UPC_C18.Value = ComboBox_UPC_C18_Value
MsgBox (ComboBox_UPC_C18_Value)
Exit Sub
End If
ComboBox_UPC_C18_Value = ComboBox_UPC_C18.Value
MsgBox (ComboBox_UPC_C18_Value)
End Sub
解决方案
我无法对此进行测试,但我认为这与您正在寻找的内容很接近。让我知道我是否完全不在这里:
Private Sub ComboBox_UPC_C18_Change()
Dim RngLocation As Range
Dim PrevLocation As String
Application.EnableEvents = False
PrevLocation = Range("Location_C18").Value
If PrevLocation = "" Then
Range("Location_C18").Value = ComboBox_UPC_C18.Value
Else
If MsgBox("Are you sure you want to change this?", vbYesNo) = vbYes Then
Range("Location_C18").Value = ComboBox_UPC_C18.Value
Else
ComboBox_UPC_C18.Value = PrevLocation
End If
End If
Application.EnableEvents = True
End Sub
推荐阅读
- python - 在参数化函数中仅使用一次夹具
- cmake - cmake transitive usage: propagate libs but keep headers private
- java - 更改地图类型时,mapbox.getStyle() 返回 null
- android - 如何通过其他活动填写多领域活动?
- python - 管道文件中存在问题,因为它没有获取书名。而是为每次爬网保存一个带有 None.jpg 的随机图像
- javascript - 从javascript代码中读取类属性
- typescript - 打字稿在编译时找不到模块
- react-table - 如何将自定义道具从 App 传递到单元格以进行 react-table v7?
- hadoop - putHDFS 处理器中的 Nifi 错误:无法确定当前用户
- laravel - Laravel 队列未在数据库中添加作业