Это самый эффективный способ написания кода? - PullRequest
0 голосов
/ 06 июля 2019
Sub test
    Dim LR As Long
    LR = Range("D" & Rows.Count).End(xlUp).Row
    Range("F4:F" & LR).Formula = “=d4*-1”
    Range("F4:F" & LR).Copy
    Range("F4:F" & LR).PasteSpecial xlPasteValues
End sub

В моем макросе я вставляю много значений, и мне было просто любопытно, есть ли более эффективный способ написания кода выше.

Ответы [ 2 ]

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

Я думаю, что самый быстрый способ, которым вы пытаетесь сделать:требуется больше времени для запуска макроса.Просто скопируйте / вставьте диапазон, чтобы обойти это, если указать параметр Destination.Отказ от этого снова сохранит диапазон на Clipboard.

Как правило, вы можете в основном избегать использования копирования / вставки!

0 голосов
/ 06 июля 2019

Как предложил @BigBen, но с использованием оператора With/End With ...

Sub test()
    Dim LR As Long
    LR = Range("D" & Rows.Count).End(xlUp).Row
    With Range("F4:F" & LR)
        .Formula = "=D4*-1"
        .Value = .Value
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...