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

Вход

Регистрация

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

 

= Мир MS Excel/Application-defined or object-defined error - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Application-defined or object-defined error (Макросы Sub)
Application-defined or object-defined error
Lyubasha Дата: Понедельник, 28.10.2013, 12:27 | Сообщение № 1
Группа: Гости
Здравствуйте.
Необходимо написать макрос, при использовании которого будет добавляться количество строк равное количеству ненулевых значений в правой части строки (после 36 столбца)
При запуске данного макроса выдает ошибку Run time error:'1004' Application-defined or object-defined error, выделяя строку Rows(i).Resize(s).Insert
Ниже приведен код макроса. Подскажите пожалуйста как устранить ошибку?

[vba]
Код
Option Explicit
Option Base 1

Sub Discret()

Dim lLastRow, lLastCol As Long

Dim i As Long
Dim j As Long
Dim s As Integer

lLastRow = Cells(Rows.Count, 30).End(xlUp).Row ' определяем посл ячейку в столбце 30

Application.ScreenUpdating = False

For i = lLastRow To 592 Step -1

lLastCol = Cells(i, Columns.Count).End(xlToLeft).Column

s = 0

For j = lLastCol To 36 Step -1

If Cells(i, j).Value <> 0 Then
s = s + 1
End If

Next j

Rows(i).Resize(s).Insert

Next i

lLastRow = Cells(Rows.Count, 30).End(xlUp).Row
MsgBox lLastRow, vbInformation

Application.ScreenUpdating = True

MsgBox "Конец!", vbInformation

End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Необходимо написать макрос, при использовании которого будет добавляться количество строк равное количеству ненулевых значений в правой части строки (после 36 столбца)
При запуске данного макроса выдает ошибку Run time error:'1004' Application-defined or object-defined error, выделяя строку Rows(i).Resize(s).Insert
Ниже приведен код макроса. Подскажите пожалуйста как устранить ошибку?

[vba]
Код
Option Explicit
Option Base 1

Sub Discret()

Dim lLastRow, lLastCol As Long

Dim i As Long
Dim j As Long
Dim s As Integer

lLastRow = Cells(Rows.Count, 30).End(xlUp).Row ' определяем посл ячейку в столбце 30

Application.ScreenUpdating = False

For i = lLastRow To 592 Step -1

lLastCol = Cells(i, Columns.Count).End(xlToLeft).Column

s = 0

For j = lLastCol To 36 Step -1

If Cells(i, j).Value <> 0 Then
s = s + 1
End If

Next j

Rows(i).Resize(s).Insert

Next i

lLastRow = Cells(Rows.Count, 30).End(xlUp).Row
MsgBox lLastRow, vbInformation

Application.ScreenUpdating = True

MsgBox "Конец!", vbInformation

End Sub
[/vba]

Автор - Lyubasha
Дата добавления - 28.10.2013 в 12:27
Poltava Дата: Понедельник, 28.10.2013, 12:39 | Сообщение № 2
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Ну неплохо бы еще и файл к этому макросу увидеть.
 
Ответить
СообщениеНу неплохо бы еще и файл к этому макросу увидеть.

Автор - Poltava
Дата добавления - 28.10.2013 в 12:39
doober Дата: Понедельник, 28.10.2013, 14:35 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Скорее всего у вас есть пустые строки,надо на 0 s проверять
[vba]
Код
If s > 0 Then Rows(i).Resize(s).Insert
[/vba]


 
Ответить
СообщениеСкорее всего у вас есть пустые строки,надо на 0 s проверять
[vba]
Код
If s > 0 Then Rows(i).Resize(s).Insert
[/vba]

Автор - doober
Дата добавления - 28.10.2013 в 14:35
Lubasha Дата: Вторник, 29.10.2013, 06:24 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
doober, спасибо большое! Все заработало.
 
Ответить
Сообщениеdoober, спасибо большое! Все заработало.

Автор - Lubasha
Дата добавления - 29.10.2013 в 06:24
antonio2040 Дата: Вторник, 18.03.2014, 18:37 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый день. Абсолютно та же ошибка, но в другом случае:
[vba]
Код
ActiveSheet.Cells(2, 2).Formula = "=" & Worksheets(2).Name & "!" & Worksheets(2).Cells(40, 6)
[/vba]
Что это может быть?


Сообщение отредактировал antonio2040 - Вторник, 18.03.2014, 18:37
 
Ответить
СообщениеДобрый день. Абсолютно та же ошибка, но в другом случае:
[vba]
Код
ActiveSheet.Cells(2, 2).Formula = "=" & Worksheets(2).Name & "!" & Worksheets(2).Cells(40, 6)
[/vba]
Что это может быть?

Автор - antonio2040
Дата добавления - 18.03.2014 в 18:37
KuklP Дата: Вторник, 18.03.2014, 18:50 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Белиберда потому как. Попробуйте хотя бы:
[vba]
Код
Worksheets(2).Cells(40, 6).address
[/vba]
а вообще пример надо прикладывать.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеБелиберда потому как. Попробуйте хотя бы:
[vba]
Код
Worksheets(2).Cells(40, 6).address
[/vba]
а вообще пример надо прикладывать.

Автор - KuklP
Дата добавления - 18.03.2014 в 18:50
antonio2040 Дата: Среда, 19.03.2014, 09:49 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KuklP, спасибо. hands
Суть я понял: я обращался к значению ячейки, а надо к адресу. Пример приложить не получится, потому как в нем уже 1500 строк, и много переменных базируются на других. Чтобы там разобраться, уйдет много времени, потому я выбрал конкретную строку с ошибкой и заменил все переменные значениями.
Еще раз спасибо.
 
Ответить
СообщениеKuklP, спасибо. hands
Суть я понял: я обращался к значению ячейки, а надо к адресу. Пример приложить не получится, потому как в нем уже 1500 строк, и много переменных базируются на других. Чтобы там разобраться, уйдет много времени, потому я выбрал конкретную строку с ошибкой и заменил все переменные значениями.
Еще раз спасибо.

Автор - antonio2040
Дата добавления - 19.03.2014 в 09:49
azamat Дата: Пятница, 20.02.2015, 12:56 | Сообщение № 8
Группа: Гости
takaya zhe owibka v stroke
If ((FX.Ccy1 & FX.Ccy2 = Worksheets("AddON_banknote").Cells(K, 2)) Or (FX.Ccy2 & FX.Ccy1 = Worksheets("AddON_banknote").Cells(K, 2))) Then
[moder]Новый вопрос - в новой теме. Эта тема закрыта[/moder]
 
Ответить
Сообщениеtakaya zhe owibka v stroke
If ((FX.Ccy1 & FX.Ccy2 = Worksheets("AddON_banknote").Cells(K, 2)) Or (FX.Ccy2 & FX.Ccy1 = Worksheets("AddON_banknote").Cells(K, 2))) Then
[moder]Новый вопрос - в новой теме. Эта тема закрыта[/moder]

Автор - azamat
Дата добавления - 20.02.2015 в 12:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Application-defined or object-defined error (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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