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

0

Ich verwende Excel 2013 , um eine Arbeitsmappe zu erstellen, die von einem Endbenutzer ausgefüllt wird. Ehrlich gesagt habe ich viele Überprüfungen. Wenn der Benutzer also versucht, mehr als 2000 Zeilen einzufügen, dauert dies zu lange.

Mein Problem ist nicht die Leistung, ich möchte nur eine anzeigen, message boxwenn der Benutzer versucht, mehr als 2000 Zeilen einzufügen . Ich habe in Google danach gesucht, aber keine Informationen dazu gefunden.

Mohammed Abusaif
quelle

Antworten:

1

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

Grundsätzlich wird dies schwierig, da Sie nicht leicht feststellen können, wann der Benutzer Daten einfügen wird. Das Abrufen der Daten aus der Zwischenablage ist nicht so schwierig, das Abfangen des Einfügens jedoch.

Informationen zum Abrufen der Daten aus der Zwischenablage finden Sie im folgenden MSDN- Artikel .

Eine Idee zum Abfangen des Einfügens wäre, das verzögerte Rendern zu untersuchen, wie in dieser StackOverflow-Antwort erwähnt.

Ist es möglicherweise einfacher, eine Schaltfläche "Zwischenablage überprüfen" zu haben, die Ihre Benutzer vor dem Einfügen drücken?

cjb110
quelle
-1
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. Das Einfügen funktioniert zu 100%, und Sie können die Nachricht nach Belieben ändern.
Wenn Sie jedoch versuchen, mehr als 2000 Zeilen zu löschen, wird ein Fehler angezeigt.
Ein anderes Problem Ich konnte diesen Code nicht in meinen Blattcode einfügen. Ich weiß nicht, was das Problem ist, bei dem es nicht funktioniert.

Mohammed Abusaif
quelle
Das Posten von Lösungen, die nicht einmal für Sie funktionieren, ist keine gute Idee. Ich verstehe nicht, wie es anderen helfen könnte. Das Hauptproblem bei Ihrer Vorgehensweise besteht darin, dass das WorkSheet_Change-Ereignis NACH Abschluss des Einfügens auftritt, sodass der Benutzer diese Meldung nach dem Warten und nicht vorher erhält.
Máté Juhász
Lieber Máté Juhász, es ist meine Schuld , es als eine Antwort auf habe ich ihn als Kommentar setzen sollte, Apologies ich bin neu Fluss zu stapeln über .. aber ich weiß , ich versuche , es zu machen , arbeitet mit meinem Code
Mohammed Abusaif
Wie hilft es, die letzte Operation vom Rückgängig-Stapel zu bekommen? sicherlich, wenn es auf diesem Stapel ist, ist es schon zu spät.
cjb110