Как дать задержку времени менее одной секунды в excel vba? Vba задержка времени


excel-vba - Как дать задержку времени менее одной секунды в excel vba?

Public Function CheckWholeNumber(Number As Double) As Boolean If Number - Fix(Number) = 0 Then CheckWholeNumber = True End If End Function Public Sub TimeDelay(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If CheckWholeNumber(Days) = False Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If CheckWholeNumber(Hours) = False Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If CheckWholeNumber(Minutes) = False Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

Пример:

call TimeDelay(1.9,23.9,59.9,59.9999999)

надеюсь, вам понравится.

изменить:

здесь один без каких-либо дополнительных функций, для людей, которым нравится это быстрее

Public Sub WaitTime(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If Days - Fix(Days) > 0 Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If Hours - Fix(Hours) > 0 Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If Minutes - Fix(Minutes) > 0 Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

qaru.site

vba - Доступ /Excel VBA - Задержка времени

Заметка:

  1. Обновить таблицы в Excel, связанные с базой данных Access

  2. Таблицы в Excel необходимо обновить, например, Test_Sheet1, Test_Sheet2, Test_Sheet3

  3. Доступ к файлам Excel осуществляется несколькими пользователями

Вопрос

В Access vba, если используется файл excel (только для чтения), как я могу реализовать задержку в коде доступа vba, чтобы дождаться, когда файл будет прочитан/записан, чтобы он мог продолжить работу с кодом (обновить таблицы, сохранить/закрыть файл). Обратите внимание, что файлы Excel лучше обновлять по порядку.

Я действительно выполнял дескриптор ошибки с задержкой по времени, поэтому, если номер ошибки = 1004, то задержка на X. Это действительно не работа.

Задержки времени в VBA

Function RefreshExcelTables() Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Set ExcelApp = Nothing End Function

Всплывающие сообщения (изображения ниже)

Обновить

Function RefreshExcelTables() On Error GoTo Error Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Error: If Err.Number = 1004 Then call pause(5) Resume End If Set ExcelApp = Nothing End Function Public Function Pause(intSeconds As Integer) Dim dblStart As Double If intSeconds > 0 Then dblStart = Timer() Do While Timer < dblStart + intSeconds Loop End If End Function задан Elixir 11 мая '15 в 20:53 источник поделиться

qaru.site

Как дать задержку времени менее одной секунды в excel vba? [excel-vba]

Вы можете использовать вызов API и Sleep:

Поместите это вверху вашего модуля:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Затем вы можете вызвать его в следующей процедуре:

Sub test() Dim i As Long For i = 1 To 10 Debug.Print Now() Sleep 500 'wait 0.5 seconds Next i End Sub

вызвать waitfor (.005)

Sub WaitFor(NumOfSeconds As Single) Dim SngSec as Single SngSec=Timer + NumOfSeconds Do while timer < sngsec DoEvents Loop End sub

Исходные временные задержки в VBA

Public Function CheckWholeNumber(Number As Double) As Boolean If Number - Fix(Number) = 0 Then CheckWholeNumber = True End If End Function Public Sub TimeDelay(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If CheckWholeNumber(Days) = False Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If CheckWholeNumber(Hours) = False Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If CheckWholeNumber(Minutes) = False Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

пример:

call TimeDelay(1.9,23.9,59.9,59.9999999)

надеюсь, вам понравится.

редактировать:

вот один без каких-либо дополнительных функций, для людей, которым это нравится быстрее

Public Sub WaitTime(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If Days - Fix(Days) > 0 Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If Hours - Fix(Hours) > 0 Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If Minutes - Fix(Minutes) > 0 Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

Никакой ответ не помог мне, поэтому я его построил.

' function Timestamp return current time in milliseconds. ' compatible with JSON or JavaScript Date objects. Public Function Timestamp () As Currency timestamp = (Round(Now(), 0) * 24 * 60 * 60 + Timer()) * 1000 End Function ' function Sleep let system execute other programs while the milliseconds are not elapsed. Public Function Sleep(milliseconds As Currency) If milliseconds < 0 Then Exit Function Dim start As Currency start = Timestamp () While (Timestamp () < milliseconds + start) DoEvents Wend End Function

Примечание. В Excel 2007 Now() посылает Double с десятичными знаками в секундах, поэтому я использую Timer() для получения миллисекунд.

Примечание: Application.Wait() принимает секунды и не под (т.е. Application.Wait(Now()) ↔ Application.Wait(Now()+100*millisecond)) )

Примечание. Application.Wait() не позволяет системе выполнять другую программу, но вряд ли снижает производительность. Предпочитайте использование DoEvents .

code-examples.net

Задержки времени в VBA | Programmerz.ru

Мне бы хотелось, чтобы мой код задерживался на 1 секунду. Ниже приведен код, который я пытаюсь сделать задержка. Я думаю, что он проверяет дату и время работы операционной системы и ждет, пока совпадёт время. У меня проблема с задержкой. Я думаю, что он не проверяет время, когда он соответствует времени ожидания, и он просто сидит там и замерзает. Он только зависает примерно в 5% случаев, когда я запускаю код. Мне было интересно о Application.Wait и если есть способ проверить, превышает ли время опроса, чем время ожидания.

newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 1 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime

14

2017-08-05 17:43

источник

Ответы:

Я использую эту небольшую функцию для VBA.

Public Function Pause(NumberOfSeconds As Variant) On Error GoTo Error_GoTo Dim PauseTime As Variant Dim Start As Variant Dim Elapsed As Variant PauseTime = NumberOfSeconds Start = Timer Elapsed = 0 Do While Timer < Start + PauseTime Elapsed = Elapsed + 1 If Timer = 0 Then ' Crossing midnight PauseTime = PauseTime - Elapsed Start = 0 Elapsed = 0 End If DoEvents Loop Exit_GoTo: On Error GoTo 0 Exit Function Error_GoTo: Debug.Print Err.Number, Err.Description, Erl GoTo Exit_GoTo End Function

18

2017-08-05 18:07

Если вы находитесь в Excel VBA, вы можете использовать следующее.

Application.Wait(Now + TimeValue("0:00:01"))

(Строка времени должна выглядеть так: H: MM: SS.)

36

2017-09-26 01:00

Вы можете скопировать это в модуль:

Sub WaitFor(NumOfSeconds As Long) Dim SngSec as Long SngSec=Timer + NumOfSeconds Do while timer < sngsec DoEvents Loop End sub

и всякий раз, когда вы хотите применить паузу, напишите:

Call WaitFor(1)

Надеюсь, это поможет!

11

2017-08-05 18:25

Вы пытались использовать Сон?

Вот пример ВОТ  (скопировано ниже):

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Activate() frmSplash.Show DoEvents Sleep 1000 Unload Me frmProfiles.Show End Sub

Обратите внимание, что это может заморозить приложение в течение выбранного времени.

6

2017-08-05 18:20

Другой вариант ответа Стива Мэллориса, я специально нуждался в превосходстве, чтобы убежать и делать что-то в ожидании, и 1 секунда была слишком длинной.

'Wait for the specified number of milliseconds while processing the message pump 'This allows excel to catch up on background operations Sub WaitFor(milliseconds As Single) Dim finish As Single Dim days As Integer 'Timer is the number of seconds since midnight (as a single) finish = Timer + (milliseconds / 1000) 'If we are near midnight (or specify a very long time!) then finish could be 'greater than the maximum possible value of timer. Bring it down to sensible 'levels and count the number of midnights While finish >= 86400 finish = finish - 86400 days = days + 1 Wend Dim lastTime As Single lastTime = Timer 'When we are on the correct day and the time is after the finish we can leave While days >= 0 And Timer < finish DoEvents 'Timer should be always increasing except when it rolls over midnight 'if it shrunk we've gone back in time or we're on a new day If Timer < lastTime Then days = days - 1 End If lastTime = Timer Wend End Sub

2

2017-08-19 09:30

таймер  функция также применяется к Access 2007, Access 2010, Access 2013, Access 2016, Access 2007 Developer, Access 2010 Developer, Access 2013 Developer. Вставьте этот код в паузу на определенное количество секунд

T0 = Timer Do Delay = Timer - T0 Loop Until Delay = 1 'Change this value to pause time in second

2

2017-07-02 23:41

Доступ всегда может использовать процедуру Excel, если проект имеет объект Microsoft Excel XX.X ссылка включена :

Call Excel.Application.Wait(DateAdd("s",10,Now()))

2

2018-02-11 16:06

programmerz.ru

Доступ / Excel VBA – Задержка времени MS Excel онлайн

Заметка:

  1. Обновить таблицы в Excel, связанные с базой данных Access

  2. Таблицы в Excel необходимо обновить, например, Test_Sheet1, Test_Sheet2, Test_Sheet3

  3. Доступ к файлам Excel осуществляется несколькими пользователями

Вопрос

В Access vba, если используется файл excel (только для чтения), как я могу реализовать задержку в коде доступа vba, чтобы дождаться, когда файл будет прочитан / записан, чтобы он мог продолжить работу с кодом (обновить таблицы, сохранить / закрыть файл). Обратите внимание, что файлы Excel лучше обновлять по порядку.

Я действительно выполнял дескриптор ошибки с задержкой по времени, поэтому, если номер ошибки = 1004, то задержка на X. Это действительно не работа.

Задержки времени в VBA

Function RefreshExcelTables() Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Set ExcelApp = Nothing End Function

Всплывающие сообщения (изображения ниже)

Обновить

Function RefreshExcelTables() On Error GoTo Error Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Error: If Err.Number = 1004 Then call pause(5) Resume End If Set ExcelApp = Nothing End Function Public Function Pause(intSeconds As Integer) Dim dblStart As Double If intSeconds > 0 Then dblStart = Timer() Do While Timer < dblStart + intSeconds Loop End If End Function
Solutions Collecting From Web of "Доступ / Excel VBA – Задержка времени"

Я использовал это для приостановки обработки кода:

Public Function Pause(intSeconds As Integer) Dim dblStart As Double If intSeconds > 0 Then dblStart = Timer() Do While Timer < dblStart + intSeconds ' Twiddle thumbs Loop End If End Function

Таким образом, вы просто: Call Pause(1) где вам нужна пауза, и она будет ждать секунду.

Хорошо работает, если вам нужно только отложить полные секунды. У меня есть еще один надежный вариант с большим количеством кода, который можно использовать для гораздо меньших приращений, если вы хотите его использовать.

excel.fliplinux.com

Как дать задержку времени менее одной секунды в excel vba?

Я хочу повторить событие через определенную продолжительность менее 1 секунды. Я попытался использовать следующий код

Application.wait Now + TimeValue ("00:00:01")

Но здесь минимальное время задержки составляет одну секунду. Как дать отсрочку, скажем, половину времени?

23

2017-09-03 23:20

источник

Ответы:

Вы можете использовать вызов API и Sleep:

Поместите это вверху вашего модуля:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Затем вы можете вызвать его в следующей процедуре:

Sub test() Dim i As Long For i = 1 To 10 Debug.Print Now() Sleep 500 'wait 0.5 seconds Next i End Sub

20

2017-09-04 01:17

Я нашел это на другом сайте, не уверен, работает он или нет.

Application.Wait Now + 1/(24*60*60.0*2)

числовое значение 1 = 1 день

1/24 - один час

1 / (24 * 60) - одна минута

поэтому 1 / (24 * 60 * 60 * 2) составляет 1/2 секунды

Вы должны использовать десятичную точку где-то, чтобы заставить число с плавающей запятой

Источник

Не уверен, что это будет стоить выстрела в миллисекундах

Application.Wait (Now + 0.000001)

13

2017-09-03 23:42

вызвать waitfor (.005)

Sub WaitFor(NumOfSeconds As Single) Dim SngSec as Single SngSec=Timer + NumOfSeconds Do while timer < sngsec DoEvents Loop End sub

источник Задержки времени в VBA

11

2017-11-09 10:50

Я попробовал это, и это работает для меня:

Private Sub DelayMs(ms As Long) Debug.Print TimeValue(Now) Application.Wait (Now + (ms * 0.00000001)) Debug.Print TimeValue(Now) End Sub Private Sub test() Call DelayMs (2000) 'test code with delay of 2 seconds, see debug window End Sub

4

2017-10-02 19:49

Public Function CheckWholeNumber(Number As Double) As Boolean If Number - Fix(Number) = 0 Then CheckWholeNumber = True End If End Function Public Sub TimeDelay(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If CheckWholeNumber(Days) = False Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If CheckWholeNumber(Hours) = False Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If CheckWholeNumber(Minutes) = False Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

пример:

call TimeDelay(1.9,23.9,59.9,59.9999999)

надеюсь, вам понравится.

редактировать:

вот один без каких-либо дополнительных функций, для людей, которым это нравится быстрее

Public Sub WaitTime(Days As Double, Hours As Double, Minutes As Double, Seconds As Double) If Days - Fix(Days) > 0 Then Hours = Hours + (Days - Fix(Days)) * 24 Days = Fix(Days) End If If Hours - Fix(Hours) > 0 Then Minutes = Minutes + (Hours - Fix(Hours)) * 60 Hours = Fix(Hours) End If If Minutes - Fix(Minutes) > 0 Then Seconds = Seconds + (Minutes - Fix(Minutes)) * 60 Minutes = Fix(Minutes) End If If Seconds >= 60 Then Seconds = Seconds - 60 Minutes = Minutes + 1 End If If Minutes >= 60 Then Minutes = Minutes - 60 Hours = Hours + 1 End If If Hours >= 24 Then Hours = Hours - 24 Days = Days + 1 End If Application.Wait _ ( _ Now + _ TimeSerial(Hours + Days * 24, Minutes, 0) + _ Seconds * TimeSerial(0, 0, 1) _ ) End Sub

0

2017-12-06 03:45

В противном случае вы можете создать свою собственную функцию, затем вызвать ее, важно использовать Double

Function sov(sekunder As Double) As Double starting_time = Timer Do DoEvents Loop Until (Timer - starting_time) >= sekunder End Function

0

2017-08-17 08:16

Очевидно, старый пост, но это, похоже, работает на меня ....

Application.Wait (Now + TimeValue("0:00:01") / 1000)

Разделите все, что вам нужно. Десятая, сотая и т. Д. Все работают. Удаляя часть «делить на», макросу требуется больше времени для запуска, поэтому, без ошибок, я должен полагать, что он работает.

0

2017-12-13 18:29

Никакой ответ не помог мне, поэтому я его построил.

' function Timestamp return current time in milliseconds. ' compatible with JSON or JavaScript Date objects. Public Function Timestamp () As Currency timestamp = (Round(Now(), 0) * 24 * 60 * 60 + Timer()) * 1000 End Function ' function Sleep let system execute other programs while the milliseconds are not elapsed. Public Function Sleep(milliseconds As Currency) If milliseconds < 0 Then Exit Function Dim start As Currency start = Timestamp () While (Timestamp () < milliseconds + start) DoEvents Wend End Function

Заметка :  В Excel 2007, Now() отправьте Double с десятичными знаками на секунды, поэтому я использую Timer() чтобы получить миллисекунды.

Заметка :   Application.Wait() принимать секунды и не под (т.е. Application.Wait(Now())  Application.Wait(Now()+100*millisecond)))

Заметка :   Application.Wait() не позволяет системе выполнять другую программу, но вряд ли снижает производительность. Предпочитают использование DoEvents,

0

2018-01-05 15:57

programmerz.ru

Access/Excel VBA - Время задержки

Примечание:

  1. Обновить таблицы в Excel, которые связаны с базой данных Access

  2. Таблицы в Excel должны быть обновлены, чтобы, например, Test_Sheet1, Test_Sheet2, Test_Sheet3

  3. файлы
  4. Excel доступны несколькими пользователями

Вопрос

В Access vba Если используется файл excel (только для чтения), как я могу реализовать задержку в коде доступа vba, чтобы дождаться, когда файл будет прочитан/записан, чтобы он продолжал работу с код (обновить таблицы, сохранить/закрыть файл). Обратите внимание, что файлы Excel лучше обновлять по порядку.

Я выполнил дескриптор ошибки с задержкой по времени, поэтому, если номер ошибки = 1004, то задержка на X. Это действительно не работа.

Timing Delays in VBA

Function RefreshExcelTables() Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Set ExcelApp = Nothing End Function

Всплывающие сообщения (изображения ниже)

Update

Function RefreshExcelTables() On Error GoTo Error Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb" ExcelApp.ActiveWorkbook.refreshall ExcelApp.ActiveWorkbook.Save ExcelApp.ActiveWindow.Close Error: If Err.Number = 1004 Then call pause(5) Resume End If Set ExcelApp = Nothing End Function Public Function Pause(intSeconds As Integer) Dim dblStart As Double If intSeconds > 0 Then dblStart = Timer() Do While Timer < dblStart + intSeconds Loop End If End Function

excel vba excel-vba ms-access access-vba

stackoverrun.com