Strg + V in Microsoft Excel deaktivieren (Einfügen per Rechtsklick zulassen)

Strg + V in Microsoft Excel deaktivieren (Einfügen per Rechtsklick zulassen)

Ich und mein Team verwenden eine Excel-Tabelle. Diese Tabelle verwendet bedingte Formatierung. Daher möchte ich, dass mein Team NICHT Strg + V verwendet, sondern mit der rechten Maustaste klickt und „Als Werte einfügen“ auswählt. Wenn sie Strg + V verwenden, führt dies dazu, dass die bedingte Formatierung mit der Zeit fragmentiert wird. Ich habe sie darüber informiert und mithilfe der Datenüberprüfung eine Popup-Erinnerungsnachricht hinzugefügt, aber sie verwenden immer noch Strg + V!

Ich möchte das Einfügen mit Strg + V deaktivieren und Strg + V ein Nachrichtenfeld hinzufügen.

Hier ist mein VBA (ich habe pastewarn() an Strg + V gebunden). Es scheint überhaupt keine Wirkung zu haben – die Nachrichtenbox erscheint nicht und Strg + V funktioniert wie gewohnt.

Sub pasteGone()
'Disable CTRL + V.
Application.OnKey "^{v}", "" 'Paste
End Sub

Sub pasteWarn()
' Bind this to Ctrl + V
MsgBox "Ctrl + V has been disabled. Please right-click and use 'Paste as Values'."
End Sub

Mögliche Komplikation: Mein Team und ich verwenden eine Mischung aus Office 2016, 2013 und 2010. (Ich verwende 2016; sie verwenden alle entweder 2010 oder 2013.)

Antwort1

Dies ist zwar keine Antwort auf die Frage, aber vielleicht trotzdem ein Weg, das Problem zu lösen.

Anstatt die Benutzer zu zwingen, sich an die Arbeitsmappe anzupassen, lassen Sie die Arbeitsmappe die Eingabe an die Arbeitsmappe anpassen.
Das heißt, wenn der Benutzer etwas einfügt, machen Sie seine Aktion rückgängig und fügen Sie es stattdessen als Werte ein.
Auf diese Weise können sie das Einfügen mit STRG+V durchführen und es ist immer noch korrekt.
Sie müssen im Code in der Zeile „lastAction“ einen Haltepunkt setzen und nachsehen, was „Einfügen“ in Ihrer Sprache bedeutet, und das dann im „If“ verwenden.

Private Sub Worksheet_Change(ByVal Target As Range)

  lastAction = Application.CommandBars("Standard").FindControl(ID:=128).List(1)

  If lastAction = "Paste" Then ' change to your language
        With Application
            .EnableEvents = False
            .Undo
        End With
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.EnableEvents = True
  End If
End Sub

Fügen Sie den obigen Code zu den Blättern hinzu, auf denen Sie ihn einfügen möchten. Sie können auch das Ziel verwenden, wenn Sie die PasteValues ​​auf nur einen Teil des Blatts beschränken möchten.

Antwort2

Ich hatte zuvor ein ähnliches Problem. Die einzige Lösung, die ich finden konnte, bestand darin, dem Benutzer das Kopieren zu untersagen. (Ich weiß, dass dies möglicherweise nicht genau das ist, wonach Sie suchen, da der Benutzer möglicherweise immer noch die Kopierfunktion verwenden muss.)

Ich habe Folgendes verwendet:

Private Sub Workbook_Activate()
    Application.CutCopyMode = False
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_Deactivate()
    Application.CellDragAndDrop = True
    Application.OnKey "^c"
    Application.CutCopyMode = False
End Sub
 Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    Application.CutCopyMode = False
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    Application.CellDragAndDrop = True
    Application.OnKey "^c"
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_Open()
    MsgBox "Copying and Pasting into the skills matrix has been disabled to prevent changes in the workbook functionality."
End Sub

verwandte Informationen