Sub Овал1_Щелчок() Dim arr As Collection, x, t, i Set arr = New Collection For Each x In Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)) arr.Add x.Value arr.Add ActiveSheet.Cells(x.Row, 9 + x.Column) Next x 'arr = Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)).Value For i = 1 To arr.Count If Not IsEmpty(arr(i)) Then If i / 2 = Int(i / 2) Then Macr = "J" & (5 + i) Else Macr = "S" & (5 + i) Application.Run arr.Item(i) t = Now + TimeValue("0:00:05") Do DoEvents Loop While t > Now End If Next i Set arr = Nothing End Sub
[/vba]
Макрос во время своей работы - выдает ошибку: Run-time error 1004. Method Run of object Application failed.
Подскажите - как ее исправить и заставить макрос работать ?
Добрый день. Посоветуйте, если кто знает.
Есть макрос: [vba]
Код
Sub Овал1_Щелчок() Dim arr As Collection, x, t, i Set arr = New Collection For Each x In Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)) arr.Add x.Value arr.Add ActiveSheet.Cells(x.Row, 9 + x.Column) Next x 'arr = Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)).Value For i = 1 To arr.Count If Not IsEmpty(arr(i)) Then If i / 2 = Int(i / 2) Then Macr = "J" & (5 + i) Else Macr = "S" & (5 + i) Application.Run arr.Item(i) t = Now + TimeValue("0:00:05") Do DoEvents Loop While t > Now End If Next i Set arr = Nothing End Sub
[/vba]
Макрос во время своей работы - выдает ошибку: Run-time error 1004. Method Run of object Application failed.
Подскажите - как ее исправить и заставить макрос работать ?ПутинВВ
Потому что в arr.Item(2) лежит ячейка, а не имя макроса. А что хотели сделать - мне неведомо... Как вариант - кладите не ячейку, а её значение, тем более что уже умеете: [vba]
Потому что в arr.Item(2) лежит ячейка, а не имя макроса. А что хотели сделать - мне неведомо... Как вариант - кладите не ячейку, а её значение, тем более что уже умеете: [vba]
Public Macr As String Sub Овал1_Щелчок() arr = Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)).Value For i = 1 To UBound(arr) If Not IsEmpty(arr(i, 1)) Then Macr = "J" & (5 + i) Application.Run arr(i, 1) t = Now + TimeValue("0:00:05") Do DoEvents Loop While t > Now End If Next i End Sub
[/vba]
параметр Macr формируется нормально. Может быть его надо задавать не как String, а как что-то другое ?
Hugo, подскажите почему в коде - строчка Set shp = ActiveSheet.Shapes.AddPicture(Range(Macr), False, True, -1, -1, -1, -1) Не хочет работать ?
Public Macr As String Sub Овал1_Щелчок() arr = Range(Cells(6, 17), Cells(Rows.Count, 17).End(xlUp)).Value For i = 1 To UBound(arr) If Not IsEmpty(arr(i, 1)) Then Macr = "J" & (5 + i) Application.Run arr(i, 1) t = Now + TimeValue("0:00:05") Do DoEvents Loop While t > Now End If Next i End Sub
[/vba]
параметр Macr формируется нормально. Может быть его надо задавать не как String, а как что-то другое ?ПутинВВ
Sub Овал1_Щелчок() Dim r As Range, col As Variant With ActiveSheet.UsedRange With Intersect(.Offset(5), .Cells) For Each r In .Rows For Each col In Array("Q", "Z") With r.Columns(col) If .Value <> "" Then Macr = .Offset(, -7).Address(, , , 1) Application.Run .Value Application.Wait Now + #12:00:05 AM# End If End With Next col, r End With End With End Sub
[/vba]
[vba]
Код
Sub Овал1_Щелчок() Dim r As Range, col As Variant With ActiveSheet.UsedRange With Intersect(.Offset(5), .Cells) For Each r In .Rows For Each col In Array("Q", "Z") With r.Columns(col) If .Value <> "" Then Macr = .Offset(, -7).Address(, , , 1) Application.Run .Value Application.Wait Now + #12:00:05 AM# End If End With Next col, r End With End With End Sub