Нужно чтобы макрос включался, каждые 30 секунд самостоятельно.
[vba]
Код
Sub Get_Value_From_Close_Book() Dim sShName As String, sAddress As String, vData 'Отключаем обновление экрана Application.ScreenUpdating = False Workbooks.Open "C:\Users\1ukom.xlsm" '" sAddress = "A1:O2000" 'или одна ячейка - "A1" 'получаем значение vData = Sheets("Лист1").Range(sAddress).Value ActiveWorkbook.Close False 'Записываем данные на активный лист книги, 'с которой запустили макрос If IsArray(vData) Then [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [A1] = vData End If 'Включаем обновление экрана Application.ScreenUpdating = True End Sub
[/vba]
Здравствуйте, помогите доработать код пожалуйста:
Нужно чтобы макрос включался, каждые 30 секунд самостоятельно.
[vba]
Код
Sub Get_Value_From_Close_Book() Dim sShName As String, sAddress As String, vData 'Отключаем обновление экрана Application.ScreenUpdating = False Workbooks.Open "C:\Users\1ukom.xlsm" '" sAddress = "A1:O2000" 'или одна ячейка - "A1" 'получаем значение vData = Sheets("Лист1").Range(sAddress).Value ActiveWorkbook.Close False 'Записываем данные на активный лист книги, 'с которой запустили макрос If IsArray(vData) Then [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [A1] = vData End If 'Включаем обновление экрана Application.ScreenUpdating = True End Sub
На всякий случай гляньте в хелпе пример кода как этот Application.OnTime сбросить - когда-нибудь пригодится. Для этого задавайте время через публичную переменную.
На всякий случай гляньте в хелпе пример кода как этот Application.OnTime сбросить - когда-нибудь пригодится. Для этого задавайте время через публичную переменную.Hugo
Sub Get_Value_From_Close_Book() Application.OnTime Now + TimeSerial(0, 0, 30), "Get_Value_From_Close_Book" Dim sShName As String, sAddress As String, vData 'Отключаем обновление экрана Application.ScreenUpdating = False Workbooks.Open "C:\Users\1ukom.xlsm" '" , ReadOnly:=True sAddress = "A1:O2000" 'или одна ячейка - "A1" 'получаем значение vData = Sheets("Лист1").Range(sAddress).Value ActiveWorkbook.Close False 'Записываем данные на активный лист книги, 'с которой запустили макрос If IsArray(vData) Then [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [A1] = vData End If 'Включаем обновление экрана Application.ScreenUpdating = True End Sub
[/vba]
Вопрос данный код выполняет: Записываем данные на активный лист книги, с которой запустили макрос
Что нужно исправить в коде, чтобы данные записывались на неактивный лист, например мне нужно чтобы данные записались в Лист1, но при этом я сижу и работаю с Лист2
Вопрос всё по этому коду:
[vba]
Код
Sub Get_Value_From_Close_Book() Application.OnTime Now + TimeSerial(0, 0, 30), "Get_Value_From_Close_Book" Dim sShName As String, sAddress As String, vData 'Отключаем обновление экрана Application.ScreenUpdating = False Workbooks.Open "C:\Users\1ukom.xlsm" '" , ReadOnly:=True sAddress = "A1:O2000" 'или одна ячейка - "A1" 'получаем значение vData = Sheets("Лист1").Range(sAddress).Value ActiveWorkbook.Close False 'Записываем данные на активный лист книги, 'с которой запустили макрос If IsArray(vData) Then [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [A1] = vData End If 'Включаем обновление экрана Application.ScreenUpdating = True End Sub
[/vba]
Вопрос данный код выполняет: Записываем данные на активный лист книги, с которой запустили макрос
Что нужно исправить в коде, чтобы данные записывались на неактивный лист, например мне нужно чтобы данные записались в Лист1, но при этом я сижу и работаю с Лист2stalber
Сообщение отредактировал awaddwaawddw - Среда, 21.03.2018, 11:37