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
Ответить
Сообщение Здравствуйте. Необходимо написать макрос, при использовании которого будет добавляться количество строк равное количеству ненулевых значений в правой части строки (после 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
Ответить
Сообщение Ну неплохо бы еще и файл к этому макросу увидеть. Автор - 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
Ответить
Сообщение Скорее всего у вас есть пустые строки,надо на 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
Ответить
Сообщение 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] Что это может быть?
Добрый день. Абсолютно та же ошибка, но в другом случае: [vba]Код
ActiveSheet.Cells(2, 2).Formula = "=" & Worksheets(2).Name & "!" & Worksheets(2).Cells(40, 6)
[/vba] Что это может быть? antonio2040
Сообщение отредактировал 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] а вообще пример надо прикладывать.
Белиберда потому как. Попробуйте хотя бы: [vba]Код
Worksheets(2).Cells(40, 6).address
[/vba] а вообще пример надо прикладывать. KuklP
Ну с НДС и мы чего-то ст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 , спасибо. Суть я понял: я обращался к значению ячейки, а надо к адресу. Пример приложить не получится, потому как в нем уже 1500 строк, и много переменных базируются на других. Чтобы там разобраться, уйдет много времени, потому я выбрал конкретную строку с ошибкой и заменил все переменные значениями. Еще раз спасибо.
KuklP , спасибо. Суть я понял: я обращался к значению ячейки, а надо к адресу. Пример приложить не получится, потому как в нем уже 1500 строк, и много переменных базируются на других. Чтобы там разобраться, уйдет много времени, потому я выбрал конкретную строку с ошибкой и заменил все переменные значениями. Еще раз спасибо.antonio2040
Ответить
Сообщение KuklP , спасибо. Суть я понял: я обращался к значению ячейки, а надо к адресу. Пример приложить не получится, потому как в нем уже 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
Ответить
Сообщение 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