Страницы: 1
RSS
нужно определить причину возникновения ошибки
 
Добрый день!  
Есть некая процедурка по добавлению строк в таблицу на защищенном листе:  
Private Sub CommandButton1_Click()  
  ActiveSheet.Unprotect "xxx"  
  If Cells(Selection.Row, 2).Value = 1 Or Cells(Selection.Row - 1, 3).Locked Then  
     MsgBox ("Íåëüçÿ ñþäà äîáàâèòü ñòðîêó, ñïóñòèòåñü íèæå!")  
  Else  
     If TextBox1.Value = 0 Or TextBox1.Value = "" Then TextBox1.Value = 1  
     For i = 1 To Val(TextBox1.Value)  
        ActiveCell.EntireRow.Insert  
        Cells(Selection.Row, 2).Formula = "=B" + Trim(Str(Selection.Row - 1)) + "+1"  
        Cells(Selection.Row + 1, 2).Formula = "=B" + Trim(Str(Selection.Row)) + "+1"  
     Next  
  End If  
  ActiveSheet.Protect "xxx"  
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True  
  ActiveSheet.EnableSelection = xlUnlockedCells  
End Sub  
 
Так вот что странно, на некоторых компах может вызывать ошибку: "Microsoft Visual Basic: Compile error in hidden module: ЛистХХ".  
 
Excel 2003 у всех
 
Да можно и не смотреть, в какой именно строке ошибка.  
 
Ключевое слово - "на НЕКОТОРЫХ компах может вызывать ошибку"  
 
Явные признаки отсутствующей библиотеки.  
Либо файл запускается на более ранних \ подзних версиях Office  
 
В любом случае, надо по максимуму отключить лишние библиотеки. (в Tools - References)
 
{quote}{login=The_Prist}{date=27.10.2009 10:31}{thema=}{post}Это все очень плохо. Но еще хуже, что Вы я так понимаю даже не пытались искать ошибку, сняв защиту с проекта и посмотреть куда Вас при ошибке выкинет VBA.  
Ошбок может быть куча: неверные библиотеки, неверный для данной версии Excel метод обращения к объекту, переменной и т.д. Например Str может тоже вызвать ошибку.  
В общем снимайте защиту с проекта и смотрите в какой строке ошибка.{/post}{/quote}  
 
Да я не могу, к сожалению, посмотреть. На местных компах все ок, а ошибки вылазят на компах в далеких от меня городах.
 
ошибка может быть здесь:  
If Cells(Selection.Row, 2).Value = 1 Or Cells(Selection.Row - 1, 3).Locked Then  
если Selection.Row=1, т.е. выделена ячейка в первой строке, то вы проверяете на защищенность ячейку в нулевой строке, которой нет.  
Вставляйте обработчик ошибок.
Bite my shiny metal ass!      
Страницы: 1
Читают тему
Наверх