사용자가 Excel 시트에 2000개가 넘는 행을 붙여넣으려고 하면 메시지를 표시합니다.

사용자가 Excel 시트에 2000개가 넘는 행을 붙여넣으려고 하면 메시지를 표시합니다.

나는 사용하고있다엑셀 2013최종 사용자가 채울 통합 문서를 만들려면 솔직히 검증이 너무 많아서 사용자가 2000개 이상의 행을 붙여넣으려고 하면 시간이 많이 걸립니다.

message box내 문제는 성능에 관한 것이 아닙니다. 사용자가 다음 이상을 붙여넣으려고 하는 경우 에만 표시하고 싶습니다.2000행. Google에서 찾아봤는데 관련 정보를 찾을 수 없었습니다.

답변1

사과드립니다. 이것은 답변의 코드는 아니지만 접근 방식입니다.

기본적으로 이는 사용자가 언제 데이터를 붙여넣으려고 하는지 알 수 있는 쉬운 방법이 없기 때문에 어려울 것입니다. 클립보드 데이터를 얻는 것은 그리 어렵지 않지만 붙여넣기를 가로채는 것은 어렵습니다.

클립보드 데이터를 검색하려면 다음 MSDN을 참조하세요.기사.

페이스트를 가로채기 위해 한 가지 아이디어는 위에서 언급한 대로 지연된 렌더링을 조사하는 것입니다.이것StackOverflow 답변.

사용자가 붙여넣기 전에 누르는 '클립보드 확인' 버튼을 사용하는 것이 더 쉬울 수도 있습니다.

답변2

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

이 코드를 새 시트에 넣으면 붙여넣기가 100% 작동하며 원하는 대로 메시지를 수정할 수 있습니다.
하지만 솔직히 2000개 이상의 행을 삭제하려고 하면 오류가 나타납니다.
이 코드를 시트 코드에 넣을 수 없는 또 다른 문제는 작동하지 않는 문제가 무엇인지 모르겠습니다.

관련 정보