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

Вход

Регистрация

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

 

= Мир MS Excel/Как исправить ошибку Method Run of object Application failed - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как исправить ошибку Method Run of object Application failed (Макросы/Sub)
Как исправить ошибку Method Run of object Application failed
ПутинВВ Дата: Воскресенье, 27.01.2019, 00:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день.
Посоветуйте, если кто знает.

Есть макрос:
[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.

Подскажите - как ее исправить и заставить макрос работать ?
К сообщению приложен файл: 5783608.xls(66.5 Kb)
 
Ответить
СообщениеДобрый день.
Посоветуйте, если кто знает.

Есть макрос:
[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.

Подскажите - как ее исправить и заставить макрос работать ?

Автор - ПутинВВ
Дата добавления - 27.01.2019 в 00:46
Hugo Дата: Воскресенье, 27.01.2019, 00:54 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2870
Репутация: 641 ±
Замечаний: 0% ±

Потому что в arr.Item(2) лежит ячейка, а не имя макроса.
А что хотели сделать - мне неведомо...
Как вариант - кладите не ячейку, а её значение, тем более что уже умеете:
[vba]
Код
arr.Add ActiveSheet.Cells(x.Row, 9 + x.Column).Value
[/vba]


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069


Сообщение отредактировал Hugo - Воскресенье, 27.01.2019, 00:58
 
Ответить
СообщениеПотому что в arr.Item(2) лежит ячейка, а не имя макроса.
А что хотели сделать - мне неведомо...
Как вариант - кладите не ячейку, а её значение, тем более что уже умеете:
[vba]
Код
arr.Add ActiveSheet.Cells(x.Row, 9 + x.Column).Value
[/vba]

Автор - Hugo
Дата добавления - 27.01.2019 в 00:54
ПутинВВ Дата: Воскресенье, 27.01.2019, 01:29 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Hugo, подскажите почему в коде - строчка
Set shp = ActiveSheet.Shapes.AddPicture(Range(Macr), False, True, -1, -1, -1, -1)
Не хочет работать ?

То есть строка
Macr = "J" & (5 + i) Else Macr = "S" & (5 + i)
Как-то неправильно формирует параметр Macr ?

Вот в этом коде:
[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)
Не хочет работать ?

То есть строка
Macr = "J" & (5 + i) Else Macr = "S" & (5 + i)
Как-то неправильно формирует параметр Macr ?

Вот в этом коде:
[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, а как что-то другое ?

Автор - ПутинВВ
Дата добавления - 27.01.2019 в 01:29
krosav4ig Дата: Воскресенье, 27.01.2019, 02:44 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1982
Репутация: 840 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[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
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[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
[/vba]

Автор - krosav4ig
Дата добавления - 27.01.2019 в 02:44
ПутинВВ Дата: Воскресенье, 27.01.2019, 02:53 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, а теперь все заработало !!!
Большое вам человеческое спасибо.

Вы - реально большой человек в мире программирования.


Сообщение отредактировал ПутинВВ - Воскресенье, 27.01.2019, 02:59
 
Ответить
Сообщениеkrosav4ig, а теперь все заработало !!!
Большое вам человеческое спасибо.

Вы - реально большой человек в мире программирования.

Автор - ПутинВВ
Дата добавления - 27.01.2019 в 02:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как исправить ошибку Method Run of object Application failed (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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