объединить функции Worksheet_Calculate и Worksheet_Change excel vba - PullRequest
0 голосов
/ 13 мая 2018

На моем листе значение столбца L обновляется с помощью формулы в нем.Всякий раз, когда данные столбца L меняются, мне не нужно запускать функцию, которая обновит столбец M и K.Для этого я использую функцию ниже

Private Sub Worksheet_Calculate()

Dim Ticker As Worksheet
Dim target As Range, val As Long, LastRaw As Long, i As Long

    Set Ticker = Workbooks("FyersOne.xlsm").Sheets("Ticker")

    LastRaw = Range("A" & Rows.Count).End(xlUp).Row

    Set target = Ticker.Range("L2:L" & LastRaw)

            If Not Intersect(target, Range("L2")) Is Nothing Then

                For i = 2 To LastRaw

                    Ticker.Cells(i, "M").Value = Ticker.Cells(i, "J").Value - Ticker.Cells(i, "K").Value
                    Ticker.Cells(i, "K").Value = Ticker.Cells(i, "J").Value

                Next i

            End If


    End Sub

Мне нужно запускать функцию только для тех строк, чьи данные столбца L обновляются.Но используя приведенный выше код, функция рассчитывает все строки.Данные столбца L будут обновляться в разное время для каждой строки, поэтому мне нужна функция запуска только для этих строк.

Если я использую функцию Worksheet_Change, я могу проверить строки, которые обновляются в столбце L.но проблема в том, что Worksheet_Change не сработает, потому что значение изменяется с помощью функции.

Кроме того, Excel становится медленным из-за кода, проходящего по всем строкам каждый раз.Есть ли способ, которым я могу выполнить эту функцию только для тех строк, где L значение столбца обновляется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...