09.11.2024 15:31:56
Добрый день. Добавила макрос, что бы при открытий обновлялись все запросы и сохранялся файл. На локальном компьютере работает. А если размещаю в сетевую (общую) папку дает ошибку. на эту строку "Application.OnTime TimeToRun". Подскажите в чем может быть проблема и пути ее решения?
Данные макросы использую из одного из видео Николая: Dim TimeToRun 'глобальная переменная, где хранится следующее время запуска 'это главный макрос Sub MyMacro() For Each oc In ThisWorkbook.Connections 'запоминаем значение обновления в фоне для запроса IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery 'выставляем принудительно ждать завершения запроса oc.OLEDBConnection.BackgroundQuery = False 'обновляем запрос oc.Refresh 'возвращаем обновление в фоне в первоначальное состояние oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh Next ThisWorkbook.Save 'Range("A1").Value = Now Call NextRun 'запускаем макрос NextRun для назначения след.времени запуска End Sub 'этот макрос назначает время следующего запуска главного макроса Sub NextRun() TimeToRun = Now + TimeValue("01:00:00") 'прибавляем к текущему времени 5 мин Application.OnTime TimeToRun, "MyMacro" 'назначаем следующий запуск End Sub 'макрос для запуска последовательности повторений Sub Start() Call NextRun End Sub 'макрос для остановки последовательности повторений Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub
Изменено: |
|
|
29.10.2024 06:09:06
Добрый день. Подскажите почему может зависать excel, когда запускаю макрос?
Sub MyMacro() ThisWorkbook.RefreshAll Application.CalculateUntilAsyncQueriesDone
ThisWorkbook.Save Call NextRun End sub Без Application.CalculateUntilAsyncQueriesDone Всё срабатывает, но так как не успевают обновиться запросы, идёт конфликт с сохранением.
Изменено: |
|
|
08.10.2024 16:24:46
В конечном итоге удалила. Т. К. Не поняла как можно два эти макроса связать)
Private Sub Worksheet_Change1(ByVal Target As Range) Dim vVal Dim StrVal As String Dim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("i2:i With Target vVal = Format(.Value, "0000") If IsNumeric(vVal) And Len(vVal) = 4 Then Application.EnableEvents = False .Value = Left(vVal, 2) & ":" & Right(vVal, 2) .NumberFormat = "[h]:mm" End If End With End If
Application.EnableEvents = True End Sub
Private Sub Worksheet_Change(ByVal Target1 As Range) Set p = Sheets("НСИ").Range("Запчасти") If Target1.Cells.Count > 1 Then Exit Sub If IsEmpty(Target1) Then Exit Sub If Not Intersect(Target1, Range("g2:g If WorksheetFunction.CountIf(Sheets("НСИ").Range("Запчасти"), Target1) = 0 Then r = MsgBox("Добавить новое имя в справочник?", vbYesNo) If r = vbYes Then p.Cells(p.Rows.Count + 1) = Target1 End If End If End Sub
|
|
|
08.10.2024 13:27:47
Добрый день. использовала макрос для ввода время без двоеточия
все было хорошо пока не решила объединить два макроса)))(с макросами не дружу) Сейчас и идея не получилась по объединению, чтобы и время можно было вводить и был пополняемый всплывающий список. Помогите понять почему такая проблема началась? Заполняются листы АТС и диспетчер столбец "по"
Изменено: |
|
|