【发布时间】:2018-11-27 14:33:51
【问题描述】:
我有一张填写了预订编号和相关数据的表格。在 VBA 中,我已经准备好删除预订号及其关联行的代码。
其中一些预订号不应被删除,我希望使用密码(与此预订相关联)来删除它。
这是我的删除代码:
Private Sub btn_verwijderen_Click()
' try to retrieve the product by ID
Dim rngIdList As Range, rngId As Range
Set rngIdList = ActiveSheet.Range([B2], [B2].End(xlDown))
Set rngId = rngIdList.Find(Me.txtBookingnr, LookIn:=xlValues)
If rngId Is Nothing Then
' bookingnumber is not found
Exit Sub
Else
If MsgBox("you are about to delete: " & "Booking:" & Me.txtBookingnr & ". Are you sure?", vbYesNo) = vbYes Then
If MsgBox("You can't undo this process. Sure to delete?", vbYesNo) = vbYes Then
Sheets("Invoer").Range("Tabel133").Find(Me.txtBookingnr.Value).Delete
Sheets("Gastenlijst_vertrekkers").Columns(2).Find(Me.txtBookingnr, , , , 1).EntireRow.Delete
Sheets("Gastenlijst").Columns(2).Find(Me.txtBookingnr, , , , 1).EntireRow.Delete
MsgBox "Booking is deleted. Refresh update now (automatically)"
Call updatePlanning_Click
Call btn_cancel_Click
Else
MsgBox "Nothing changed"
End If
End If
End If
End Sub
现在,此代码适用于允许用户删除的行。但是对于用户不能删除的数字,需要填写密码保护,才能正式删除该行。
例如:
Column B = Booking#
Column C = Initials
Column D = Surname
Column E = Checkin date
Column F = Checkout date
etc. etc. etc.
假设预订号:1800123 已取消,需要从列表中删除。我按下按钮:删除 (btn_verwijderen),我将获得第一个 MsgBox。点击“是”后,应该会出现一条要求输入密码的新消息。输入正确密码后,预订应被删除。但是密码与特定的预订相关。
希望你们中的一些人知道如何实现这一目标。 提前感谢您的帮助。
【问题讨论】:
-
您希望每一行(假设每一行对应一个唯一的预订)都有自己的密码?
-
不,只有某些唯一的预订号码。说出 10 个预订号码。