2013-08-01 4 views
0
Private Sub Worksheet_Change(ByVal Target As Range) 
    Worksheets("Order_Form").Cells(39, 2) = Environ("USERNAME") 

    ' Pop up a warning when the user input more than 1000 cases 
    If Target.Column = 7 And (Target.Row < 34 And Target.Row > 13) Then 
     If Cells(Target.Row, Target.Column) > 1000 Then MsgBox "You are ordering more than 1000 cases", vbCritical 
    End If 

End Sub 

Это поднимает отказ от стека пространства ошибки (ошибка времени выполнения 1004)Из стека времени пространства выполнения: 1004 Ошибки

Это обычно происходит, когда я пытаюсь изменить любую клетку

Любого один есть идеи почему?

Спасибо!

ответ

2

Первая строка помещает Вас в бесконечный цикл, как вы инициируют изменение рабочего листа внутри события Worksheet_Change. Попробуйте следующее:

Private Sub Worksheet_Change(ByVal Target As Range) 
    On Error GoTo err_handler 
    Application.EnableEvents = False 
    Worksheets("Order_Form").Cells(39, 2) = Environ("USERNAME") 
    Application.EnableEvents = True 

    ' Pop up a warning when the user input more than 1000 cases 
    If Target.Column = 7 And (Target.Row < 34 And Target.Row > 13) Then 
     If Cells(Target.Row, Target.Column) > 1000 Then MsgBox "You are ordering more than 1000 cases", vbCritical 
    End If 
err_handler: 
Application.EnableEvents = True 

End Sub 
+0

благодарит за ваш ответ, но это отключил макросы на листе? – user2584367

+1

Вам следует искать Application.EnableEvents и событие WorkSheet_Change. Вы увидите много похожих вопросов. Короткий ответ заключается в том, что он не отключает макросы, отключает события и не дает вам перейти в бесконечный цикл WorkSheet_Changes. Если ваш код останавливается до того, как он вернется к TRUE, у вас может возникнуть проблема. Я отредактирую это, чтобы быть немного более безопасным. –

+0

Я решил это, добавив код в workheet_open вместо этого, спасибо за вашу помощь, хотя очень ценю! Поскольку я просто хочу установить ячейку на имя пользователя один раз, когда она откроется – user2584367

0

Ознакомьтесь с этой статьей. Он говорит о своей общей проблеме, если одна из ячеек в вашем массиве имеет более 911 символов (что такое случайное число). И я вижу, что ваш может содержать до 1000. Ссылка содержит работу, которая, надеюсь, поможет вам. Ура!

http://support.microsoft.com/kb/818808

Смежные вопросы