Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Указание названия книги и листа (простой вопрос) - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Указание названия книги и листа (простой вопрос) (Макросы/Sub)
Указание названия книги и листа (простой вопрос)
ArkaIIIa Дата: Среда, 11.06.2014, 07:49 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Доброе утро, уважаемые гуру!

Подскажите, пожалуйста, неопытному юзеру, как правильно сделать следующее.

Есть макрос:

[vba]
Код
Sub Update_()
      Path_1 = "F:\STALE_APP_REPORT.xls"
      iFileDateTime_1 = FileDateTime(Path_1)
      Cells(27, 11) = iFileDateTime_1
      ActiveWorkbook.UpdateLink Name:= _
          "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
            
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
            
If Not R Is Nothing Then
      Sheets(7).Select
      rngX.Copy
      R.Offset(1).PasteSpecial Paste:=xlPasteValues
      Set rngX = Selection
      For X = 1 To rngX.Columns.Count
          rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
      Next X
End If
      Sheets(1).Select
End Sub
[/vba]

Первая его часть, вот эта:
[vba]
Код
Path_1 = "F:\STALE_APP_REPORT.xls"
iFileDateTime_1 = FileDateTime(Path_1)
Cells(27, 11) = iFileDateTime_1
ActiveWorkbook.UpdateLink Name:= _
"F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
[/vba]Вставляет в ячейку K27 дату и время последнего обновления файла-исходника под названием "STALE_APP_REPORT.xls"
Как правильно и в какую часть макроса вставить название файла и номер листа куда должна идти вставка? (Лист1, название файла: "File123.xlsm")

Просто, периодически возникает проблема, когда вышеупомянутый макрос вставляет дату и время обновления файла STALE_APP_REPORT в ячейу К27 но на другом листе, либо вообще в другую книгу.


Сообщение отредактировал ArkaIIIa - Среда, 11.06.2014, 07:50
 
Ответить
СообщениеДоброе утро, уважаемые гуру!

Подскажите, пожалуйста, неопытному юзеру, как правильно сделать следующее.

Есть макрос:

[vba]
Код
Sub Update_()
      Path_1 = "F:\STALE_APP_REPORT.xls"
      iFileDateTime_1 = FileDateTime(Path_1)
      Cells(27, 11) = iFileDateTime_1
      ActiveWorkbook.UpdateLink Name:= _
          "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
            
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
            
If Not R Is Nothing Then
      Sheets(7).Select
      rngX.Copy
      R.Offset(1).PasteSpecial Paste:=xlPasteValues
      Set rngX = Selection
      For X = 1 To rngX.Columns.Count
          rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
      Next X
End If
      Sheets(1).Select
End Sub
[/vba]

Первая его часть, вот эта:
[vba]
Код
Path_1 = "F:\STALE_APP_REPORT.xls"
iFileDateTime_1 = FileDateTime(Path_1)
Cells(27, 11) = iFileDateTime_1
ActiveWorkbook.UpdateLink Name:= _
"F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
[/vba]Вставляет в ячейку K27 дату и время последнего обновления файла-исходника под названием "STALE_APP_REPORT.xls"
Как правильно и в какую часть макроса вставить название файла и номер листа куда должна идти вставка? (Лист1, название файла: "File123.xlsm")

Просто, периодически возникает проблема, когда вышеупомянутый макрос вставляет дату и время обновления файла STALE_APP_REPORT в ячейу К27 но на другом листе, либо вообще в другую книгу.

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 07:49
anvg Дата: Среда, 11.06.2014, 09:11 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе утро.
Если книга File123.xlsm на этот момент открыта, то
[vba]
Код

Workbooks("File123.xlsm").Worksheets("Лист1").Cells(27, 11).Value = FileDateTime(Path_1)
[/vba]
Успехов.
 
Ответить
СообщениеДоброе утро.
Если книга File123.xlsm на этот момент открыта, то
[vba]
Код

Workbooks("File123.xlsm").Worksheets("Лист1").Cells(27, 11).Value = FileDateTime(Path_1)
[/vba]
Успехов.

Автор - anvg
Дата добавления - 11.06.2014 в 09:11
ArkaIIIa Дата: Среда, 11.06.2014, 09:15 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
anvg
Благодарю!

Скажите, пожалуйста, а вышеобозначенная проблема (макрос срабатывал на другие книги), связана именно с тем, что в макросе не было четко прописано, в какую книгу он должен вставлять информацию?
 
Ответить
Сообщениеanvg
Благодарю!

Скажите, пожалуйста, а вышеобозначенная проблема (макрос срабатывал на другие книги), связана именно с тем, что в макросе не было четко прописано, в какую книгу он должен вставлять информацию?

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 09:15
anvg Дата: Среда, 11.06.2014, 09:23 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Цитата
(макрос срабатывал на другие книги)

Просто обращение Cells(27, 11) подразумевает активный лист активной книги. А ведь это может быть и не требуемый лист необходимой книги, не так ли? Более того, может привести к ошибке, если активный лист - это диаграмма.
 
Ответить
Сообщение
Цитата
(макрос срабатывал на другие книги)

Просто обращение Cells(27, 11) подразумевает активный лист активной книги. А ведь это может быть и не требуемый лист необходимой книги, не так ли? Более того, может привести к ошибке, если активный лист - это диаграмма.

Автор - anvg
Дата добавления - 11.06.2014 в 09:23
_Boroda_ Дата: Среда, 11.06.2014, 09:32 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
ArkaIIIa, Вообще, довольно удобно пользоваться конструкцией With - End With (если таких обращений больше одного)
Вот так:
[vba]
Код
    With Workbooks("555555.xlsm").Worksheets("Лист1")
         .Cells(27, 11).Value = 5
         Workbooks("777.xlsm").Worksheets("Лист222").Cells(27, 11).Value = 7
         .Cells(2, 2).Value = 555
     End With
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеArkaIIIa, Вообще, довольно удобно пользоваться конструкцией With - End With (если таких обращений больше одного)
Вот так:
[vba]
Код
    With Workbooks("555555.xlsm").Worksheets("Лист1")
         .Cells(27, 11).Value = 5
         Workbooks("777.xlsm").Worksheets("Лист222").Cells(27, 11).Value = 7
         .Cells(2, 2).Value = 555
     End With
[/vba]

Автор - _Boroda_
Дата добавления - 11.06.2014 в 09:32
ArkaIIIa Дата: Среда, 11.06.2014, 10:42 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
_Boroda_
Действительно удобно. Мотаю на ус. Спасибо!)

anvg
Спасибо за разъяснения. Теперь, вроде бы, все понятно.)
 
Ответить
Сообщение_Boroda_
Действительно удобно. Мотаю на ус. Спасибо!)

anvg
Спасибо за разъяснения. Теперь, вроде бы, все понятно.)

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 10:42
ArkaIIIa Дата: Среда, 11.06.2014, 11:42 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
В контексте вышеобозначенного вопроса, хотелось бы поинтересоваться (если эта другая тема - дайте знать, создам другой топик)...

Я постарался модифицировать макрос, прописав везде отсылку к нужной книге и нужным листам на ней. Получилось следующее:

[vba]
Код
Sub Update_()
     Path_1 = "F:\STALE_APP_REPORT.xls"
     iFileDateTime_1 = FileDateTime(Path_1)
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Cells(27, 11) = iFileDateTime_1
     ActiveWorkbook.UpdateLink Name:= _
         "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
          
Set R = Workbooks("Q1.5.xlsm").Worksheets("Статистика").Rows(2).Find(Worksheets("Статистика").[B1].Text, , xlValues, xlWhole)
Set rngX = Workbooks("Q1.5.xlsm").Worksheets("Статистика").[B3:B140]
          
If Not R Is Nothing Then
     Workbooks("Q1.5.xlsm").Worksheets("Статистика").Select
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Select
End Sub
[/vba]

Задача: чтобы макрос выполнялся корректно, даже если открыты другие книги и/или учетная запись заблокирована.

Вопрос 1: Возможно ли это (особенно в части выполнения при заблокированной уз)? В другом топике интересовался - сказали, что возможно.
Вопрос 2: Если ответ на вопрос 1 - возможно, то чего я не учел? Видимо где-то не поставил отсылку к нужной книге? При тестировании выдает ошибку:
Run-time error 1004: Method UpdateLink of object _Workbook failed.
Не совсем понимаю, на что именно он ругается.
 
Ответить
СообщениеВ контексте вышеобозначенного вопроса, хотелось бы поинтересоваться (если эта другая тема - дайте знать, создам другой топик)...

Я постарался модифицировать макрос, прописав везде отсылку к нужной книге и нужным листам на ней. Получилось следующее:

[vba]
Код
Sub Update_()
     Path_1 = "F:\STALE_APP_REPORT.xls"
     iFileDateTime_1 = FileDateTime(Path_1)
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Cells(27, 11) = iFileDateTime_1
     ActiveWorkbook.UpdateLink Name:= _
         "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
          
Set R = Workbooks("Q1.5.xlsm").Worksheets("Статистика").Rows(2).Find(Worksheets("Статистика").[B1].Text, , xlValues, xlWhole)
Set rngX = Workbooks("Q1.5.xlsm").Worksheets("Статистика").[B3:B140]
          
If Not R Is Nothing Then
     Workbooks("Q1.5.xlsm").Worksheets("Статистика").Select
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Select
End Sub
[/vba]

Задача: чтобы макрос выполнялся корректно, даже если открыты другие книги и/или учетная запись заблокирована.

Вопрос 1: Возможно ли это (особенно в части выполнения при заблокированной уз)? В другом топике интересовался - сказали, что возможно.
Вопрос 2: Если ответ на вопрос 1 - возможно, то чего я не учел? Видимо где-то не поставил отсылку к нужной книге? При тестировании выдает ошибку:
Run-time error 1004: Method UpdateLink of object _Workbook failed.
Не совсем понимаю, на что именно он ругается.

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 11:42
ArkaIIIa Дата: Среда, 11.06.2014, 12:34 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Так, понял, косяк в макросе:

[vba]
Код
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:05:00"), "Update_"
End Sub
[/vba]
Как сюда правильно добавить Workbooks("Q1.5.xlsm") ?
 
Ответить
СообщениеТак, понял, косяк в макросе:

[vba]
Код
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:05:00"), "Update_"
End Sub
[/vba]
Как сюда правильно добавить Workbooks("Q1.5.xlsm") ?

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 12:34
Hugo Дата: Среда, 11.06.2014, 12:43 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
"Update_" кладите в модуль этой же книги, а уже в нём прописывайте что угодно.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение"Update_" кладите в модуль этой же книги, а уже в нём прописывайте что угодно.

Автор - Hugo
Дата добавления - 11.06.2014 в 12:43
ArkaIIIa Дата: Среда, 11.06.2014, 12:47 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
_Boroda_
Я бы и рад выложить файл. Сам понимаю, что так было бы намного проще для всех, но его очень-очень долго чистить от конфиденциальной инфы.
Вопросы по сути не сложные. Для Вас, наверное, покажутся глупыми. Попробую максимально просто объяснить, что есть, и что нужно.

Есть макрос:
[vba]
Код
Sub Update_()
     Path_1 = "F:\STALE_APP_REPORT.xls"
     iFileDateTime_1 = FileDateTime(Path_1)
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Cells(27, 11) = iFileDateTime_1
     ActiveWorkbook.UpdateLink Name:= _
         "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
          
Set R = Workbooks("Q1.5.xlsm").Worksheets("Статистика").Rows(2).Find(Worksheets("Статистика").[B1].Text, , xlValues, xlWhole)
Set rngX = Workbooks("Q1.5.xlsm").Worksheets("Статистика").[B3:B140]
          
If Not R Is Nothing Then
     Workbooks("Q1.5.xlsm").Worksheets("Статистика").Select
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Select
End Sub
[/vba]

Лежит в Модуле1. Выполняет записанные в нем функции.

И есть второй макрос:
[vba]
Код
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:05:00"), "Update_"
Application.OnTime TimeValue("09:35:00"), "Update_"
Application.OnTime TimeValue("10:05:00"), "Update_"
Application.OnTime TimeValue("10:35:00"), "Update_"
Application.OnTime TimeValue("11:05:00"), "Update_"
Application.OnTime TimeValue("11:35:00"), "Update_"
Application.OnTime TimeValue("12:38:00"), "Update_"
Application.OnTime TimeValue("12:35:00"), "Update_"
Application.OnTime TimeValue("13:05:00"), "Update_"
Application.OnTime TimeValue("13:35:00"), "Update_"
Application.OnTime TimeValue("14:05:00"), "Update_"
Application.OnTime TimeValue("14:35:00"), "Update_"
Application.OnTime TimeValue("15:05:00"), "Update_"
Application.OnTime TimeValue("15:35:00"), "Update_"
Application.OnTime TimeValue("16:05:00"), "Update_"
Application.OnTime TimeValue("16:35:00"), "Update_"
Application.OnTime TimeValue("17:05:00"), "Update_"
Application.OnTime TimeValue("17:35:00"), "Update_"
Application.OnTime TimeValue("18:05:00"), "Update_"
Application.OnTime TimeValue("18:35:00"), "Update_"
Application.OnTime TimeValue("19:05:00"), "Update_"
Application.OnTime TimeValue("19:35:00"), "Update_"
Application.OnTime TimeValue("20:05:00"), "Update_"
Application.OnTime TimeValue("20:35:00"), "Update_"
Application.OnTime TimeValue("21:05:00"), "Update_"
Application.OnTime TimeValue("21:35:00"), "Update_"
Application.OnTime TimeValue("22:05:00"), "Update_"
Application.OnTime TimeValue("22:35:00"), "Update_"
Application.OnTime TimeValue("23:05:00"), "Update_"
Application.OnTime TimeValue("23:35:00"), "Update_"
End Sub
[/vba]
Выполняет первый макрос в заданное время. Лежит в "ЭтаКнига".

Куда правильно поместить макрос 2?
а) Оставить в "ЭтаКнига"
б) Положить в Модуль1 к первому
в) Положить в Модуль2

Мне то нужно, по сути, чтобы оба макроса работали автономно, в какой бы книге я не находился. Т.е. я работаю с другим файлом-excel, а первый файл (в котором записаны вышеуказанные макросы) сам-собой обновляется в указанное время.


Сообщение отредактировал ArkaIIIa - Среда, 11.06.2014, 12:48
 
Ответить
Сообщение_Boroda_
Я бы и рад выложить файл. Сам понимаю, что так было бы намного проще для всех, но его очень-очень долго чистить от конфиденциальной инфы.
Вопросы по сути не сложные. Для Вас, наверное, покажутся глупыми. Попробую максимально просто объяснить, что есть, и что нужно.

Есть макрос:
[vba]
Код
Sub Update_()
     Path_1 = "F:\STALE_APP_REPORT.xls"
     iFileDateTime_1 = FileDateTime(Path_1)
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Cells(27, 11) = iFileDateTime_1
     ActiveWorkbook.UpdateLink Name:= _
         "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
Dim R As Range
Dim rngX As Range
Dim X As Integer
          
Set R = Workbooks("Q1.5.xlsm").Worksheets("Статистика").Rows(2).Find(Worksheets("Статистика").[B1].Text, , xlValues, xlWhole)
Set rngX = Workbooks("Q1.5.xlsm").Worksheets("Статистика").[B3:B140]
          
If Not R Is Nothing Then
     Workbooks("Q1.5.xlsm").Worksheets("Статистика").Select
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If
     Workbooks("Q1.5.xlsm").Worksheets("РМ").Select
End Sub
[/vba]

Лежит в Модуле1. Выполняет записанные в нем функции.

И есть второй макрос:
[vba]
Код
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:05:00"), "Update_"
Application.OnTime TimeValue("09:35:00"), "Update_"
Application.OnTime TimeValue("10:05:00"), "Update_"
Application.OnTime TimeValue("10:35:00"), "Update_"
Application.OnTime TimeValue("11:05:00"), "Update_"
Application.OnTime TimeValue("11:35:00"), "Update_"
Application.OnTime TimeValue("12:38:00"), "Update_"
Application.OnTime TimeValue("12:35:00"), "Update_"
Application.OnTime TimeValue("13:05:00"), "Update_"
Application.OnTime TimeValue("13:35:00"), "Update_"
Application.OnTime TimeValue("14:05:00"), "Update_"
Application.OnTime TimeValue("14:35:00"), "Update_"
Application.OnTime TimeValue("15:05:00"), "Update_"
Application.OnTime TimeValue("15:35:00"), "Update_"
Application.OnTime TimeValue("16:05:00"), "Update_"
Application.OnTime TimeValue("16:35:00"), "Update_"
Application.OnTime TimeValue("17:05:00"), "Update_"
Application.OnTime TimeValue("17:35:00"), "Update_"
Application.OnTime TimeValue("18:05:00"), "Update_"
Application.OnTime TimeValue("18:35:00"), "Update_"
Application.OnTime TimeValue("19:05:00"), "Update_"
Application.OnTime TimeValue("19:35:00"), "Update_"
Application.OnTime TimeValue("20:05:00"), "Update_"
Application.OnTime TimeValue("20:35:00"), "Update_"
Application.OnTime TimeValue("21:05:00"), "Update_"
Application.OnTime TimeValue("21:35:00"), "Update_"
Application.OnTime TimeValue("22:05:00"), "Update_"
Application.OnTime TimeValue("22:35:00"), "Update_"
Application.OnTime TimeValue("23:05:00"), "Update_"
Application.OnTime TimeValue("23:35:00"), "Update_"
End Sub
[/vba]
Выполняет первый макрос в заданное время. Лежит в "ЭтаКнига".

Куда правильно поместить макрос 2?
а) Оставить в "ЭтаКнига"
б) Положить в Модуль1 к первому
в) Положить в Модуль2

Мне то нужно, по сути, чтобы оба макроса работали автономно, в какой бы книге я не находился. Т.е. я работаю с другим файлом-excel, а первый файл (в котором записаны вышеуказанные макросы) сам-собой обновляется в указанное время.

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 12:47
ArkaIIIa Дата: Среда, 11.06.2014, 12:53 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Hugo
"Update_" лежит в модуле.
"Application.OnTime" лежит в "ЭтаКнига".

Проблема. Если я в момент срабатывания "Application.OnTime" сижу в другой книге, возникает сообщение "Run-time error 1004: Method UpdateLink of object _Workbook failed."
 
Ответить
СообщениеHugo
"Update_" лежит в модуле.
"Application.OnTime" лежит в "ЭтаКнига".

Проблема. Если я в момент срабатывания "Application.OnTime" сижу в другой книге, возникает сообщение "Run-time error 1004: Method UpdateLink of object _Workbook failed."

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 12:53
_Boroda_ Дата: Среда, 11.06.2014, 12:53 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Само название "Private Sub Workbook_Open()" говорит о том, что только
а) Оставить в "ЭтаКнига"

Все, теперь понятно.Должно быть не Апдейт, а Книга("ооо").Модуль("ааа").Апдейт
Или кладите Апдейт в модуль той книги, в которой работаете в момент срабатывания макроса


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСамо название "Private Sub Workbook_Open()" говорит о том, что только
а) Оставить в "ЭтаКнига"

Все, теперь понятно.Должно быть не Апдейт, а Книга("ооо").Модуль("ааа").Апдейт
Или кладите Апдейт в модуль той книги, в которой работаете в момент срабатывания макроса

Автор - _Boroda_
Дата добавления - 11.06.2014 в 12:53
Hugo Дата: Среда, 11.06.2014, 12:55 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
1.Второй макрос может быть только в одном месте - где сейчас срабатывает.
2.Зачем сразу задавать так много времён? После первого срабатывания задавайте время на полчаса позже. Или до срабатывания, первой строкой.
И не ошибётесь в временах, как сейчас.
3.Что за "Q1.5.xlsm"? Всегда точно открыта?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение1.Второй макрос может быть только в одном месте - где сейчас срабатывает.
2.Зачем сразу задавать так много времён? После первого срабатывания задавайте время на полчаса позже. Или до срабатывания, первой строкой.
И не ошибётесь в временах, как сейчас.
3.Что за "Q1.5.xlsm"? Всегда точно открыта?

Автор - Hugo
Дата добавления - 11.06.2014 в 12:55
Hugo Дата: Среда, 11.06.2014, 12:56 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Проблема. Если я в момент срабатывания "Application.OnTime" сижу в другой книге

ну так сами ведь написали в коде ActiveWorkbook.UpdateLink


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение
Проблема. Если я в момент срабатывания "Application.OnTime" сижу в другой книге

ну так сами ведь написали в коде ActiveWorkbook.UpdateLink

Автор - Hugo
Дата добавления - 11.06.2014 в 12:56
ArkaIIIa Дата: Среда, 11.06.2014, 12:59 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Hugo
2. Я не знаю, как это сделать :-(
3. Q1.5.xlsm - это файл, в котором лежат оба макросы, открыт всегда. В нем и должно все срабатывать.
 
Ответить
СообщениеHugo
2. Я не знаю, как это сделать :-(
3. Q1.5.xlsm - это файл, в котором лежат оба макросы, открыт всегда. В нем и должно все срабатывать.

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 12:59
Hugo Дата: Среда, 11.06.2014, 13:00 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
2. Я не знаю, как это сделать :-(

а хелп на что? :)
Там как раз это есть.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение
2. Я не знаю, как это сделать :-(

а хелп на что? :)
Там как раз это есть.

Автор - Hugo
Дата добавления - 11.06.2014 в 13:00
ArkaIIIa Дата: Среда, 11.06.2014, 13:11 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Все, теперь понятно.Должно быть не Апдейт, а Книга("ооо").Модуль("ааа").Апдейт

Уважаемый Борода, у меня, честное слово, совсем-совсем неважно с VBA.
Вы имели ввиду:

[vba]
Код
Application.OnTime TimeValue("13:05:00"), Workbooks("Q1.5.xlsm").Module(1)."Update_"
[/vba]

Такой вариант - подчеркивает. Ошибка какая-то.(

Hugo
Бог с ним, с указанным многократно временем)
Мне бы решить, как сделать так, чтобы макросы выполнялись, когда я сижу в другой книге (естественно, первая при этом открыта)..)
 
Ответить
Сообщение
Все, теперь понятно.Должно быть не Апдейт, а Книга("ооо").Модуль("ааа").Апдейт

Уважаемый Борода, у меня, честное слово, совсем-совсем неважно с VBA.
Вы имели ввиду:

[vba]
Код
Application.OnTime TimeValue("13:05:00"), Workbooks("Q1.5.xlsm").Module(1)."Update_"
[/vba]

Такой вариант - подчеркивает. Ошибка какая-то.(

Hugo
Бог с ним, с указанным многократно временем)
Мне бы решить, как сделать так, чтобы макросы выполнялись, когда я сижу в другой книге (естественно, первая при этом открыта)..)

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 13:11
Hugo Дата: Среда, 11.06.2014, 13:25 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Так они ведь выполняются - ошибка ведь появляется! :)
Потому что ActiveWorkbook.UpdateLink - а в активной нет таких линков вероятно. Я ведь уже сказал.
Вы же сами активировали другую книгу!


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак они ведь выполняются - ошибка ведь появляется! :)
Потому что ActiveWorkbook.UpdateLink - а в активной нет таких линков вероятно. Я ведь уже сказал.
Вы же сами активировали другую книгу!

Автор - Hugo
Дата добавления - 11.06.2014 в 13:25
ArkaIIIa Дата: Среда, 11.06.2014, 13:30 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Hugo
Уважаемый Hugo, ну, представьте, что общаетесь с обезьяной)
Как мне модифицировать макрос, чтобы он в итоге срабатывал (без ошибок)?)
Я заменил ActiveWorkbook.UpdateLink на Workbooks("Q1.5.xlsm").UpdateLink, ничего умнее придумать не смог, в этом случае пишет Subscritp out of range.


Сообщение отредактировал ArkaIIIa - Среда, 11.06.2014, 13:31
 
Ответить
СообщениеHugo
Уважаемый Hugo, ну, представьте, что общаетесь с обезьяной)
Как мне модифицировать макрос, чтобы он в итоге срабатывал (без ошибок)?)
Я заменил ActiveWorkbook.UpdateLink на Workbooks("Q1.5.xlsm").UpdateLink, ничего умнее придумать не смог, в этом случае пишет Subscritp out of range.

Автор - ArkaIIIa
Дата добавления - 11.06.2014 в 13:30
Hugo Дата: Среда, 11.06.2014, 13:47 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Не знаю, не использовал - нужно тестить на примере. Делать пример не хочу, и некогда.
С виду вроде всё правильно.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе знаю, не использовал - нужно тестить на примере. Делать пример не хочу, и некогда.
С виду вроде всё правильно.

Автор - Hugo
Дата добавления - 11.06.2014 в 13:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Указание названия книги и листа (простой вопрос) (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!