ユーザーがドロップダウンリストから列内の値を選択していることを確認しようとしています。リストは別のページにあります。また、ユーザーが「貼り付け」を使用してドロップダウンリストを上書きしている場合は、同じことを警告するメッセージボックスをポップアップする必要があります。私はVBAマクロユーザーにドロップダウンリストから値を選択させる
敬具を使ってこれを実現するにはどうすればよい
、
ユーザーがドロップダウンリストから列内の値を選択していることを確認しようとしています。リストは別のページにあります。また、ユーザーが「貼り付け」を使用してドロップダウンリストを上書きしている場合は、同じことを警告するメッセージボックスをポップアップする必要があります。私はVBAマクロユーザーにドロップダウンリストから値を選択させる
敬具を使ってこれを実現するにはどうすればよい
、
ようTjb1が言う
gmainak、
使用したデータの検証(許可タブ区切りのデータで見つかった - リスト)あなたの選択にリストをロックして、タブを非表示にするか、リストを含むタブをロックしてください。
データの検証によって、入力メッセージを追加することができますまたはエラーアラートを表示してユーザーに通知します。
ユーザーが値を貼り付ける場合、このソリューションは機能しません。 – user3819867
私はこれを解放しなかった、ありがとう –
Validation
を設定する必要があります。人々が貼り付けてセキュリティ対策を超えている場合は、解決策にもっと頼る必要があります:
Worksheet_Change
イベントでTarget
の各セルをチェックできる簡単な関数を作成しました。
免責事項:これらの条件を理解していないと、私たちは責任を負いません。この場合、基本的なことについてもっと読む必要があります。
Function isValid(rng As Range) As Boolean
'isValid = rng.Validation.Formula1
Dim str As String, formstr As String, rng2 As Range, rng3 As Range
str = rng.Validation.Formula1
'str = Replace(str, "INDIREKT", "INDIRECT") 'hungarian specific
Set rng2 = Evaluate(str)
For Each rng3 In rng2
If rng3 = rng Then
isValid = True
Exit Function
End If
Next rng3
End Function
場所ドロップダウンワークシートのコードウィンドウでこのコード:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = $A$1 Then '<--| change $A$1 to actual address of your dropdown cell
If Not Application.CutCopyMode = False Then
MsgBox "Warning !!" & vbCrLf & vbCrLf & "You are NOT allowed to paste over the drop-down list"
Application.CutCopyMode = False
End If
End If
End Sub
は、なぜあなたはデータの検証に使用することはできませんか? – tjb1
このOPには2つの質問があります。(1)データの検証(2)データの検証の上書きによる貼り付けの防止。どちらも前に尋ねられます。 – Rosetta