Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

ошибка 440

Автор Юлия, 20.08.2012, 07:53:35

« назад - далее »

Юлия

Добрый день. Помогите разобраться.

При запуске файла выходит ошибка 440 - по таблице ошибок   VBA - 440 -это ошибка автоматизации.
Проблема в том что, не  у всех пользователей такое происходит.

Прилагаю скриншот ошибки. Может кто -то уже сталкивался .

psiho

Цитировать
Прилагаю скриншот ошибки. Может кто -то уже сталкивался .
Из Вашего скриншота ничего выяснить не получиться. Нужен именно файл с кодом. Единственное, сразу видно, что вместо "ActiveSheet" лучше использовать "sh"

Юлия

Я не могу приложить сам файл, это конфиденциальная информация.

ambasad

Цитата: Юлия от 20.08.2012, 08:31:50
Я не могу приложить сам файл, это конфиденциальная информация.
тогда помочь Вам никто не сможет
Приложите файл с кодом и каким-нибудь бутафорскими данными

Дмитрий Щербаков(The_Prist)

Юлия, приведите хотя бы код, используемый в моделе книги. Плюс процедуру count_sheet.
В качестве предположения: посмотрите, не используете ли Вы в теле процедур действия, вызывающие событийные процедуры. Если да - перед выполнением ставьте: Application.EnableEvents = False, а после выполнения: Application.EnableEvents = True
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Юлия

#5
Public Sub count_sheet()

On Error GoTo Error

ActiveWorkbook.Application.DisplayAlerts = False
Application.ScreenUpdating = False



Dim m7 As Long
Dim mday As Date


For m7 = 17 To 108

' Столбец L и М

If ActiveSheet.Name = "Время бурения" Then
ElseIf ActiveSheet.Name = "План" Then
ElseIf ActiveSheet.Name = "Адреса" Then
Else
ActiveSheet.Cells(m7, 9).NumberFormat = "dd/mm/yy h:mm;@"
ActiveSheet.Cells(m7, 20).NumberFormat = "0.00"
ActiveSheet.Cells(m7, 21).NumberFormat = "0.00"
ActiveSheet.Cells(m7, 22).NumberFormat = "0.00_ ;[Red]-0.00 "
ActiveSheet.Cells(m7, 9).ShrinkToFit = True
End If


If ActiveSheet.Name = "Время бурения" Then
ElseIf ActiveSheet.Name = "План" Then
ElseIf ActiveSheet.Name = "Адреса" Then
ElseIf ActiveSheet.Name = "01" Then
'ElseIf ActiveSheet.Cells(m7, 12).Interior.ColorIndex = 36 Then
ElseIf CDate(ActiveSheet.Range("N3").Value) <> CDate(Worksheets("План").Cells(m7, 13).Value) And ActiveSheet.Cells(m7, 12).Value > 0 Then
ActiveSheet.Range("M" & m7).Formula = "=IF(L" & m7 & ">=" & " '" & Worksheets(ActiveSheet.Index - 1).Name & "'" & "!L" & m7 & ",L" & m7 & "-" & "'" & Worksheets(ActiveSheet.Index - 1).Name & "'" & "!L" & m7 & ",L" & m7 & ")"
ElseIf CDate(ActiveSheet.Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 13).Value) Then
ActiveSheet.Cells(m7, 13).Value = Worksheets("План").Cells(m7, 12).Value
ElseIf ActiveSheet.Cells(m7, 6).Text <> Worksheets(ActiveSheet.Index - 1).Cells(m7, 6).Text Then
ActiveSheet.Cells(m7, 13).Value = 0

ElseIf (CDate(ActiveSheet.Range("N3").Value) <> CDate(Worksheets("План").Cells(m7, 13).Value) Or CDate(ActiveSheet.Range("N3").Value) <> CDate(Worksheets("План").Cells(m7, 13).Value)) And ActiveSheet.Cells(m7, 12).Value > 0 Then
ActiveSheet.Range("M" & m7).Formula = "=IF(L" & m7 & ">=" & " '" & Worksheets(ActiveSheet.Index - 1).Name & "'" & "!L" & m7 & ",L" & m7 & "-" & "'" & Worksheets(ActiveSheet.Index - 1).Name & "'" & "!L" & m7 & ",L" & m7 & ")"

If CDate(ActiveSheet.Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 13).Value) Then
ActiveSheet.Cells(m7, 13).Value = Worksheets("План").Cells(m7, 10).Value - Worksheets("План").Cells(m7, 11).Value
End If
If CDate(ActiveSheet.Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 18).Value) Then
ActiveSheet.Cells(m7, 13).Value = Worksheets("План").Cells(m7, 15).Value - Worksheets("План").Cells(m7, 16).Value
End If

Else
ActiveSheet.Cells(m7, 13).Value = vbNullText
End If

If ActiveCell.Address = Cells(m7, 6).Address Then
Call timecount
Else

End If

Next m7


'Срезка технологическая
For m7 = 17 To 108
For i = 1 To Worksheets.Count - 3
If Worksheets("План").Cells(m7, 13).Value = vbNullText Then

Else
If ActiveSheet.Name = "План" And CDate(Worksheets(i).Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 13).Value) Then
Worksheets("План").Cells(m7, 12).Value = Worksheets("План").Cells(m7, 10).Value - Worksheets("План").Cells(m7, 11).Value
Worksheets("План").Cells(m7, 9).Value = Worksheets(i).Cells(m7, 6).Value
Worksheets(i).Cells(m7, 12).Value = Worksheets("План").Cells(m7, 10).Value
Worksheets(i).Cells(m7, 13).Value = Worksheets("План").Cells(m7, 12).Value
Else

End If
End If

If Worksheets("План").Cells(m7, 18).Value = vbNullText Then

Else
If ActiveSheet.Name = "План" And CDate(Worksheets(i).Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 18).Value) _
Then
Worksheets("План").Cells(m7, 17).Value = Worksheets("План").Cells(m7, 15).Value - Worksheets("План").Cells(m7, 16).Value
Worksheets("План").Cells(m7, 14).Value = Worksheets(i).Cells(m7, 6).Value
Worksheets(i).Cells(m7, 12).Value = Worksheets("План").Cells(m7, 15).Value
Worksheets(i).Cells(m7, 13).Value = Worksheets("План").Cells(m7, 17).Value
Else

End If
End If

Next i
Next m7

For m7 = 17 To 108
If ActiveSheet.Name = "План" Then
If Worksheets("План").Cells(m7, 13).Value > vbNullText Then
Else
Worksheets("План").Cells(m7, 9).Value = vbNullText
Worksheets("План").Cells(m7, 10).Value = vbNullText
Worksheets("План").Cells(m7, 11).Value = vbNullText
Worksheets("План").Cells(m7, 12).Value = vbNullText
End If


If Worksheets("План").Cells(m7, 18).Value > vbNullText Then
Else
Worksheets("План").Cells(m7, 14).Value = vbNullText
Worksheets("План").Cells(m7, 15).Value = vbNullText
Worksheets("План").Cells(m7, 16).Value = vbNullText
Worksheets("План").Cells(m7, 17).Value = vbNullText
End If
End If




Next m7



'-----------------------Аварийная срезка-----------------------------------'
'For m7 = 17 To 107
'For i = 1 To Worksheets.Count - 3
'If Worksheets("План").Cells(m7, 28).Value = vbNullText Then

'Else
'If ActiveSheet.Name = "План" And CDate(Worksheets(i).Range("N3").Value) = CDate(Worksheets("План").Cells(m7, 28).Value) _
'Then
'Worksheets("План").Cells(m7, 27).Value = Worksheets("План").Cells(m7, 26).Value - Worksheets("План").Cells(m7, 25).Value
'Worksheets("План").Cells(m7, 24).Value = Worksheets(i).Cells(m7, 6).Value
'Worksheets("План").Cells(m7, 29).Value = Worksheets(i).Cells(m7, 24).Value
'Else

'End If
'End If
'Next i
'Next m7

'For m7 = 17 To 107
'If ActiveSheet.Name = "План" Then
'If Worksheets("План").Cells(m7, 28).Value > vbNullText Then
'Else
'Worksheets("План").Cells(m7, 24).Value = vbNullText
'Worksheets("План").Cells(m7, 25).Value = vbNullText
'Worksheets("План").Cells(m7, 26).Value = vbNullText
'Worksheets("План").Cells(m7, 27).Value = vbNullText
'End If
'End If
'Next m7
'----------------------[Аварийная срезка]----------------------------------'


Error:
If Err.Number <> 0 Then
MsgBox Err.Description, , "Внимание!!!"
Err.Clear
Exit Sub
Else
End If

End Sub


=================================================
Не забываем оформлять листинги кодов тегами VBA Code[Администратор]

Дмитрий Щербаков(The_Prist)

Пока то, что вижу подтверждает мое предположение о необходимости отключения отслеживания событий(Application.EnableEvents = False). Перечитайте мое предыдущее сообщение и попробуйте применить. Если не получится - выложите вдобавок коды из модуля ЭтаКнига(я в первую очередь его хотел увидеть...)

P.S. Зачем Вы используете vbNullText? Почему не Empty?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

psiho

#7
If ActiveSheet.Name = "Время бурения" Then  
ElseIf ActiveSheet.Name = "План" Then  
ElseIf ActiveSheet.Name = "Адреса" Then  
Else

Кто же так сочинил?!

P.S.Ошибка,скорее всего, возникает не здесь, так как в данной процедуре есть обработчик ошибки. Если бы ошибка была здесь, то появилось бы предупреждение "Внимание!!!"

Яндекс.Метрика Рейтинг@Mail.ru