Как периодически обновлять рабочий лист Excel с помощью таймера VBA

Поделись сейчас:

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

В этой статье предполагается, что у читателя отображается лента «Разработчик» и он знаком с редактором VBA. Если нет, погуглите «Excel Developer Tab» или «Excel Code Window».

Пример рабочей тетради, используемой в этом упражнении, можно найти здесь.

Использование динамической отчетности может быть:

  • Чтение приличияtar• база данных, поставляемая с телефонной системой вашей компании, для анализа звонков.
  • Генерируйте случайное число каждые 15 минут для получения приза или розыгрыша.
  • Автоматическая отправка электронных писем из вашей локальной базы данных при достижении определенных уровней. (здесь таймер будет решать, запускать процесс или нет, в зависимости от достигнутых уровней).

или тот, который мы будем использовать:

  • Отображение последнего обменного курса доллара США к евро из Интернета.

Данные извлекаются из веб-сайт Yahoo Финансы каждую минуту. После успешного тестирования следует заменить более длительный интервал обработки.

Интерфейс

Откройте новую книгу;

Назовите первый лист «Экран». Поскольку таблицы с D8 по E11 будут заполняться из Интернета, значения или заголовки строк вводить не нужно. Остальное необязательно.Подготовьте интерфейс

Кодекс

Откройте окно кода VBA и вставьте модуль. Скопируйте приведенный ниже код в модуль.

Событие Auto_Opentarts Таймер при открытии рабочей книги и останавливается при закрытии рабочей книги, если код не прерывается разработчиком во время разработки.Код VBA

Sub Auto_Open()
AlertTime = Now + TimeValue("00:01:00") 'interval in minutes
Application.OnTime AlertTime, "Ticker"      'call Sub Ticker, below
End Sub

Sub Ticker()
    Dim currBuy As String
    Dim currSell As String

    Range("D8:F11").ClearContents            'prepare the destination for the web data
    currBuy = "USD"
    currSell = "EUR"
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$8"))
        .Name = "q?s=" & currSell & currBuy & "=X"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """table1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    AlertTime = Now + TimeValue("00:01:00") ‘move trigger on a minute
    Application.OnTime AlertTime, "Ticker"
End Sub

Результат

Каждые n минут таблица на листе Display будет обновляться с веб-сайта Yahoo. Обратитесь к веб-сайту Microsoft для более сложных подключений к данным.

Восстановление поврежденных книг

Известно, что Excel аварийно завершает работу в неожиданные моменты, вероятно, из-за нехватки ресурсов. В таких случаях исходный файл может быть безвозвратноcably повреждены и отказываются открываться повторно. При отсутствии частого резервного копирования инструмент для восстановления испорченный Excel файлы были бы неоценимы.

Об авторе:

Феликс Хукер — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая rar фиксировать и программные продукты для восстановления sql. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.