Страницы: 1
RSS
Разбор ошибки: что означает Run-time error '1004' и как её убрать?, Что значит эта ошибка? И как ее убрать
 


Возникает при переходе по ссылке из одного листа на другой
 
Юрий я не рунописец но пока начинаю это читать

1004Ошибка, определенная приложением или объектом. Довольно распространенное универсальное сообщение об ошибке. Данная ошибка возникает тогда, когда ошибка генерируется не в VBA. Другими словами, ошибка определяется в Excel (или в другом объекте) и передается в VBA. Также эта ситуация возникает в случае если ошибка генерируется специально (для этого используется метод Raise объекта Err), но она не определена в VBA
Прикладывайте примеры
Лень двигатель прогресса, доказано!!!
 
Юрий, я подправил название темы: так больше конкретики. Ведь с Вашим названием все вопросы по ошибкам можно смело задавать в Вашей теме. Так лучше? Ну почему бы самому не придумать нормальное название?
 
Юрий Глодовский, я почему говорю про пример и почему так быстро привел описание ошибки, потому что ща сам сижу втыкаю в неё, так ка записал макрорекодером макрос попытался его усовершенствовать и мне выдает такую фигню и я не думаю что мы с вами делаем одно и тоже
Лень двигатель прогресса, доказано!!!
 
Сергей, пример приложить не могу, так как там у меня вся рабочая база. Пробовал вынести это дело в отдельный файл, но ошибка не возникает, походу это конфликт макросов.
У меня вопрос в какую сторону хотя бы копать.
 
Начните с того, что прогоните код пошагово: для начала выясним - на какой строке и в какой процедуре возникает эта ошибка.
 
Цитата
Юрий Глодовский пишет: У меня вопрос в какую сторону хотя бы копать.
это не ко мне, сам тупил над такой же ошибкой около 30 минут, грохнул макрос рисую заново, но это чисто развлекуха под пиво к работе у меня ни как не относится
Лень двигатель прогресса, доказано!!!
 
Юрий М, в третьей строке, тот что If Not Intersect...

Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    '// Проверяем, что выделенная ячейка пересеклась с колонкой "А"
    If Not Intersect(Target, Columns("C")) Is Nothing And Target.Parent.Name = "База" Then
        '//Проверяем, что это не первая строка (там у нас будет заголовок таблицы)
        If Target.Row <> 1 Then
            If Target.Cells.Count = 1 Then '// Если выделена только одна ячейка
                '// Проверяем, что ячейка не пуста
                If Len(Target.Offset(0, -2).Value) <> 0 Then
                    '// На всякий случай - предотвращение ошибок во время файловых операций
                    On Error Resume Next
                    '// Внимание Mkdir (в отличие от DOS-версии) не умеет создавать цепочку папок
                    '// Это означает, что папка, в которой нужно создавать новую, уже должна существовать
                    Dim HomeDir$
                    HomeDir = "D:\Base" '// Задаем исходную папку (у Вас - это: "D:\Base")
                    MkDir (HomeDir & "\" & Target.Offset(0, -2).Value)
                    If Err = 0 Then Cells(Target.Row, "C").Formula = "=HYPERLINK(""" & HomeDir & "\""&A" & Target.Row & ",""IIIII"")"
                End If
            End If
        End If
    End If
End Sub
 
 
Цитата
Юрий М пишет: Начните с того, что прогоните код пошагово: для начала выясним - на какой строке и в какой процедуре возникает эта ошибка.
Юрий Глодовский, обращайте внимание на советы, если не знаете как это сделать, спрашивайте, дадут либо ссылку либо совет как это сделать, КОТ хоть и сидит со скелетом но форумчан редко ест
Лень двигатель прогресса, доказано!!!
 
У меня нет ошибки.
Но попробуйте
Код
    If Not Intersect(Target, ActiveSheet.Columns("C")) Is Nothing And Target.Parent.Name = "База" Then 
кто его знает...
или
Код
    If Not Intersect(Target, target.parent.Columns(3)) Is Nothing And Target.Parent.Name = "База" Then 
Изменено: Hugo - 17.05.2014 08:31:16
 
Без файла сложно, конечно... Лист "База" есть?
 
Юра, у меня листа База не было. В начале :)
Это не влияет. Нет листа - не выполняется условие всего лишь...
 
вообще не уверен но со своей ошибкой кажись разобрался я когда писал рекодером копировал формулы из одного документа в другой, когда они оба были открыты макрос работал, после того как я закрыл файл из которого копировал формулы начал запускать макрос начала вылетать эта ошибка
Лень двигатель прогресса, доказано!!!
 
Цитата
Hugo пишет: If Not Intersect(Target, target.parent.Columns(3)) Is Nothing And Target.Parent.Name = "База" Then
Этот вариант помог. Большое спасибо.
Сергей, посмотрите, может вам пригодится.
 
Немного смущает несоответствие комментария и строки кода. Комментарий ошибку не вызовет, но всё же:
Код
'// Проверяем, что выделенная ячейка пересеклась с колонкой "А" 
А проверяем столбец С.
 
Цитата
Юрий Глодовский пишет: может вам пригодится.
в будущем может, на данном моменте эволюции понимания в VBA у меня даже таких строк нет
Лень двигатель прогресса, доказано!!!
 
Замечу, что Target.Parent это Sh, который передается в процедуру.
Лучше разбить первую проверку на две, чтобы сначала шла быстрая операция сравнения имени, а потом громоздкий Intersect:
Код
If Sh.Name = "База" Then
  If Not Intersect(Target, Sh.Columns(3)) Is Nothing Then 
Страницы: 1
Читают тему
Наверх