Тази статия показва как да опреснявате работен лист или диаграма на редовни интервали. Това упражнение изгражда таймер, който опреснява работния лист на всяка минута, отразявайки промените в изходните данни.
Тази статия предполага, че на читателя е показана лентата за програмисти и е запознат с редактора на VBA. Ако не, моля Google „Раздел за програмисти на Excel“ или „Прозорец на кода на Excel“.
Може да се намери пример за работната книга, използвана в това упражнение тук.
Използването на динамично отчитане може да бъде:
- Четене на собствената база данни, предоставена с телефонната система на вашата компания, за анализ на повикванията.
- Генерирайте произволно число на всеки 15 минути за целите на наградата или томболата.
- Автоматично изпращане на имейли от вашата локална база данни, когато са изпълнени определени нива. (тук таймерът ще реши дали да задейства процеса или не, въз основа на постигнатите нива).
или този, който ще използваме:
- Показвайте най-новия обменен курс USD / EUR от интернет.
Данните се извличат от Уебсайт на Yahoo Finance на всяка минута. След успешно тестване трябва да се замени по-дълъг интервал на обработка.
Интерфейсът
Отворете нова работна книга;
Наименувайте първия лист „Дисплей“. Тъй като таблицата D8 до E11 ще се попълва от мрежата, не е необходимо да се въвеждат стойности или заглавия на редове. Останалото не е задължително.
Кодексът
Отворете прозореца на кода на VBA и поставете модул. Копирайте кода по-долу в модула.
Събитието Auto_Open стартира таймера, когато работната книга се отвори, и спира, когато работната книга се затвори, освен ако кодът не е прекъснат от разработчика по време на разработка.
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 минути таблицата в Sheet “Display” ще се актуализира от уебсайта на Yahoo. Обърнете се към уебсайта на Microsoft за по-сложни връзки за данни.
Възстановяване на повредени работни книги
Известно е, че Excel се срива в неочаквани моменти, вероятно поради липса на ресурси. В такива случаи изходният файл може да бъде безвъзвратно повреден и да откаже да се отвори отново. При липса на често архивиране, инструмент за възстановяване... повреден Excel файлове би било безценно.
Въведение на автора:
Феликс Хукър е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително поправка на rar файл и sql софтуерни продукти за възстановяване. За повече информация посетете WWW.datanumen.com

