Ускорьте копирование и вставку в VBA - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь исправить базу данных на 1600 строк путем копирования и вставки, но приведенный ниже код работает медленно.Любые идеи о том, как я могу ускорить это?

Sub copy()
    Dim ws As Worksheet
    Dim i As Long

    Application.ScreenUpdating = False
    Set ws = Sheets("UK File Cash Mod")

    For i = 2 To 1600
        If ws.Cells(i, 1) Like "384*" And Cells(i + 1, 1) = "" Then
            ws.Cells(i, 1).copy
            If ws.Cells(i + 1, 3) <> "" Then
                ws.Cells(i + 1, 1).PasteSpecial
                ws.Cells(i, 2).copy
                ws.Cells(i + 1, 2).PasteSpecial
            End If
        Else
        End If
    Next i
    Application.ScreenUpdating = True
End Sub

1 Ответ

2 голосов
/ 08 июля 2019

Я удалил каждую копию-вставку простым Destination.Value=Source.Value, так что вы получите это:

Sub copy()
  Dim ws As Worksheet
  Dim i As Long

  Application.ScreenUpdating = False

  Set ws = Sheets("UK File Cash Mod")

  For i = 2 To 1600
    If ws.Cells(i, 1) Like "384*" And Cells(i + 1, 1) = "" Then
      If ws.Cells(i + 1, 3) <> "" Then
        ws.Cells(i + 1, 1).Value = ws.Cells(i, 1).Value
        ws.Cells(i + 1, 2).Value = ws.Cells(i, 2).Value
      End If
    Else
    End If
  Next i
  Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...