如果用戶嘗試修改包含文本“請勿編輯”的單元格,我試圖實作的是顯示一個彈出視窗。只有接受確認按鈕,用戶才能修改單元格值。
如何將此條件應用于可以增長并且文本“不編輯”的位置可以存在于第 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
這是我的作業表示例

uj5u.com熱心網友回復:
Consider the below modified version of your code which will throw the MsgBoxprompt when any cell is selected where column 4 in the selected row contains "don't edit".
它檢查Column 4 (Column D)所選單元格的行中是否包含"don't edit". 如果為 true,它會觸發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 回傳常量而不是諸如vbYesor 之類的值vbNo- 請參閱下面的檔案。
MsgBox 函式- 有關MsgBox 函式的更多資訊,包括按鈕引數(哪些常量/值回傳哪些按鈕單擊等),請參見此處。
uj5u.com熱心網友回復:
您可以將代碼更改為以下內容以實作您想要的:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Then
'check that only a single cell is selected
If Target.CountLarge = 1 Then
'if don't edit ask question
If LCase(Target) = "don't edit" Then
Beep
answer = MsgBox("Do you really want to change it?", vbYesNo vbQuestion)
If answer = vbYes Then
'take yes action
Else
'take no action
End If
End If
End If
End If
End Sub
Target是當前范圍(選中的一個或多個單元格),因此您可以檢查是否只選中了一個單元格。如果是這樣,您可以檢查該單元格的“不編輯”值,然后在用戶單擊確認按鈕后采取適當的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334643.html
上一篇:如何制作不可見的excel圖表
下一篇:如何創建Excel層次結構
