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

Вход

Регистрация

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

 

= Мир MS Excel/странная работа макроса и как итог aplication error 1004 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » странная работа макроса и как итог aplication error 1004 (Макросы/Sub)
странная работа макроса и как итог aplication error 1004
best_vint Дата: Понедельник, 05.05.2014, 11:28 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

подскажите, собственно код:
Цитата
Sub Ìàêðîñ1()
'
' Ìàêðîñ1 Ìàêðîñ
Set Sheet1_WS = Application.ThisWorkbook.Sheets(1)
Sheet1_WS.Select
finalrow = Sheet1_WS.Cells(Rows.Count, 2).End(xlUp).Row

For i = 6 To finalrow
For j = 18 To 47
'tekzn = Sheet1_WS.Cells(j, i).Address
tekzn = ActiveSheet.Cells(j, i)
If tekzn > 1 Then
Sheet1_WS.Cells(j, 55) = Sheet1_WS.Cells(1, i)
End If
Next j
Next i
End Sub


выделяет строку tekzn = ActiveSheet.Cells(j, i)
и выдаёт ошибку 1004 application-defined or object-defined error
причём в фоне видно, что сначала программа выполняется как надо и в нужных ячейках появляется то, что нужно, а потом всё пропадает и ошибка. Файлик прикладываю на яндекс диск, тут не умещается. Удалено. Нарушение Правил форума
Господа, причём при попытке удалить строки, чтобы уменьшить его до 100 кб, ошибка перестаёт выскакивать и в итоге макрос удаляет всё что насоздавал в 55 столбце.
 
Ответить
Сообщениеподскажите, собственно код:
Цитата
Sub Ìàêðîñ1()
'
' Ìàêðîñ1 Ìàêðîñ
Set Sheet1_WS = Application.ThisWorkbook.Sheets(1)
Sheet1_WS.Select
finalrow = Sheet1_WS.Cells(Rows.Count, 2).End(xlUp).Row

For i = 6 To finalrow
For j = 18 To 47
'tekzn = Sheet1_WS.Cells(j, i).Address
tekzn = ActiveSheet.Cells(j, i)
If tekzn > 1 Then
Sheet1_WS.Cells(j, 55) = Sheet1_WS.Cells(1, i)
End If
Next j
Next i
End Sub


выделяет строку tekzn = ActiveSheet.Cells(j, i)
и выдаёт ошибку 1004 application-defined or object-defined error
причём в фоне видно, что сначала программа выполняется как надо и в нужных ячейках появляется то, что нужно, а потом всё пропадает и ошибка. Файлик прикладываю на яндекс диск, тут не умещается. Удалено. Нарушение Правил форума
Господа, причём при попытке удалить строки, чтобы уменьшить его до 100 кб, ошибка перестаёт выскакивать и в итоге макрос удаляет всё что насоздавал в 55 столбце.

Автор - best_vint
Дата добавления - 05.05.2014 в 11:28
nilem Дата: Понедельник, 05.05.2014, 11:35 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
вот здесь
[vba]
Код
For i = 6 To finalrow
...
tekzn = ActiveSheet.Cells(j, i)
[/vba]
если finalrow, например, =300, то будет ActiveSheet.Cells(номер_строки, 300), а столбцов у вас (в Е2003) 256. Поэтому и ошибка


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениевот здесь
[vba]
Код
For i = 6 To finalrow
...
tekzn = ActiveSheet.Cells(j, i)
[/vba]
если finalrow, например, =300, то будет ActiveSheet.Cells(номер_строки, 300), а столбцов у вас (в Е2003) 256. Поэтому и ошибка

Автор - nilem
Дата добавления - 05.05.2014 в 11:35
best_vint Дата: Понедельник, 05.05.2014, 13:30 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

nilem-спасибо большое, моя невнимательность или глупость.


Сообщение отредактировал Serge_007 - Четверг, 12.11.2015, 00:19
 
Ответить
Сообщениеnilem-спасибо большое, моя невнимательность или глупость.

Автор - best_vint
Дата добавления - 05.05.2014 в 13:30
Alex_ST Дата: Понедельник, 05.05.2014, 13:48 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
моя невнимательность

Ваша невнимательность ещё и в раскладке клавиатуры при копировании - в первом после вместо кириллицы - кракозябры :)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
моя невнимательность

Ваша невнимательность ещё и в раскладке клавиатуры при копировании - в первом после вместо кириллицы - кракозябры :)

Автор - Alex_ST
Дата добавления - 05.05.2014 в 13:48
best_vint Дата: Понедельник, 05.05.2014, 14:18 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Ваша невнимательность ещё и в раскладке клавиатуры при копировании - в первом после вместо кириллицы - кракозябры

не, это видел, не стал исправлять:)
 
Ответить
Сообщение
Ваша невнимательность ещё и в раскладке клавиатуры при копировании - в первом после вместо кириллицы - кракозябры

не, это видел, не стал исправлять:)

Автор - best_vint
Дата добавления - 05.05.2014 в 14:18
Almost Дата: Среда, 11.11.2015, 21:50 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Во вложении файл с макросом на открытие книги. Код:

[vba]
Код
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Dim wsSh As Object
    For Each wsSh In Me.Sheets
        If wsSh.Name = "Прочее" Then GoTo b
        If wsSh.Name = "Цель кредита" Then GoTo b
        wsSh.EnableOutlining = True
        If wsSh.Name = "Консолидация" Then GoTo a
        wsSh.Protect Password:="0000", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFormattingRows:=True, AllowFiltering:=True
        GoTo b
a:
        wsSh.Protect Password:="0000", DrawingObjects:=False, Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFormattingRows:=True, AllowAutoFiltering:=True
b:
    Next wsSh
    Application.ScreenUpdating = True
    Application.CellDragAndDrop = False
End Sub
[/vba]

Выдаёт ошибку 1004 на строке после a:

Подскажите, пожалуйста, в чём причина. Задача: заблокировать все листы кроме двух, а на одном из заблокированных оставить возможность редактирования объектов
[moder]Создавайте свою тему. И Правила форума почитайте.
К сообщению приложен файл: 8240834.xls (37.5 Kb)


Сообщение отредактировал _Boroda_ - Среда, 11.11.2015, 21:55
 
Ответить
СообщениеВо вложении файл с макросом на открытие книги. Код:

[vba]
Код
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Dim wsSh As Object
    For Each wsSh In Me.Sheets
        If wsSh.Name = "Прочее" Then GoTo b
        If wsSh.Name = "Цель кредита" Then GoTo b
        wsSh.EnableOutlining = True
        If wsSh.Name = "Консолидация" Then GoTo a
        wsSh.Protect Password:="0000", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFormattingRows:=True, AllowFiltering:=True
        GoTo b
a:
        wsSh.Protect Password:="0000", DrawingObjects:=False, Contents:=True, Scenarios:=True, UserinterfaceOnly:=True, AllowFormattingRows:=True, AllowAutoFiltering:=True
b:
    Next wsSh
    Application.ScreenUpdating = True
    Application.CellDragAndDrop = False
End Sub
[/vba]

Выдаёт ошибку 1004 на строке после a:

Подскажите, пожалуйста, в чём причина. Задача: заблокировать все листы кроме двух, а на одном из заблокированных оставить возможность редактирования объектов
[moder]Создавайте свою тему. И Правила форума почитайте.

Автор - Almost
Дата добавления - 11.11.2015 в 21:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » странная работа макроса и как итог aplication error 1004 (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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