Zeigt eine Meldung an, wenn der Benutzer versucht, mehr als 2000 Zeilen in ein Excel-Blatt einzufügen.

Zeigt eine Meldung an, wenn der Benutzer versucht, mehr als 2000 Zeilen in ein Excel-Blatt einzufügen.

ich benutzeExcel 2013um eine Arbeitsmappe zu erstellen, die von einem Endbenutzer ausgefüllt wird, habe ich ehrlich gesagt viele Validierungen, sodass es zu lange dauert, wenn der Benutzer versucht, mehr als 2000 Zeilen einzufügen.

Mein Problem ist nicht die Leistung, ich möchte nur anzeigen, message boxob der Benutzer versucht, mehr als2000 Zeilen. Ich habe bei Google danach gesucht, konnte aber keine Informationen dazu finden.

Antwort1

Entschuldigung, dies ist nicht der Code für die Antwort, aber es ist ein Ansatz.

Im Grunde wird das schwierig, da Sie nicht einfach erkennen können, wann der Benutzer Daten einfügen möchte. Die Daten aus der Zwischenablage abzurufen ist nicht so schwierig, das Einfügen jedoch abzufangen.

Informationen zum Abrufen der Zwischenablagedaten finden Sie im folgenden MSDNArtikel.

Um das Einfügen abzufangen, wäre eine Idee, sich mit verzögertem Rendering zu befassen, wie inDasStackOverflow-Antwort.

Wäre es vielleicht einfacher, eine Schaltfläche „Zwischenablage überprüfen“ zu haben, die Ihre Benutzer vor dem Einfügen drücken?

Antwort2

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim sLastOp As String
 Dim cell As Range
 Dim a As Integer
 Dim Row As Range
  a = 0
 For Each Row In Range(Target.Cells.Address)
    If InStr(Row.Address, "A") Then
        a = a + 1
    End If
Next
 '--get the last operation from the undo stack
 sLastOp = Application.CommandBars("Standard").FindControl(ID:=128).List(1)
 Select Case sLastOp
   '--if last operation was Paste or PasteSpecial, display message
   Case "Paste", "Paste Special"
   If a > 200 Then MsgBox "Please wait till pasting finishes." & a, vbOKOnly
   Case Else 'do nothing
 End Select
End Sub

Nehmen Sie diesen Code und fügen Sie ihn in ein neues Blatt ein. Er funktioniert beim Einfügen zu 100 % und Sie können die Nachricht nach Belieben ändern.
Aber ehrlich gesagt wird ein Fehler angezeigt, wenn Sie versuchen, mehr als 2000 Zeilen zu löschen.
Ein weiteres Problem ist, dass ich diesen Code nicht in meinen Blattcode einfügen konnte. Ich weiß nicht, was das Problem ist, er funktioniert nicht.

verwandte Informationen