Автоматическое сохранение книги Excel при каждом изменении автообновления

У меня есть книга Excel, которая извлекает данные о запасах из другого источника (открытие, закрытие, чистая позиция и т. Д.)

Дело в том, что я хотел бы сохранять файл CSV при каждом изменении данных, например, я ввел позицию со 100 акциями, Excel соответствующим образом обновил информацию, и теперь я хотел бы сохранить ее в отдельном листе Excel.

Приведенный ниже код прекрасно работает, когда я вводю информацию вручную, но когда данные извлекаются через RTD (автоматическое обновление ячейки), код не запускается

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.DisplayAlerts = False

    If Not Intersect(Target, Me.Range("B33:D380")) Is Nothing Then
        ThisWorkbook.SaveCopyAs Filename:="F:\Google Drive\autosave.csv"
    End If
End Sub

1 ответ

Решение

Worksheet_Change() не будет вызван формулой, как RTDОбновление ячейки.

Для этого вам нужно будет создать Worksheet_Calculate() Sub для прослушивания изменений.

Проблема в том, что эта функция листа не имеет Range аргумент, чтобы проверить, какие ячейки редактируются... так что для предложений смотрите эту ссылку.

Другие вопросы по тегам