2015-09-02 3 views
-1

Я новичок в макросе и хотел найти текст или часть текста из диапазона на листе, я исследовал и нашел этот код:VBA Excel Macro Ошибка времени выполнения «1004» при попытке .Find()

Set aCell = .Columns(1).Find(What:="Custom ", LookIn:=xlValues, _ 
       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
       MatchCase:=False, SearchFormat:=False) 

Но когда я бегу, это дает мне ошибку 1004. Так что это мое полное суб:

Sub kl() 
    Dim ws As Worksheet 
    Dim aCell As Range 

    Set ws = ThisWorkbook.Sheets("te-dhenat") 

    With ws 
     Set aCell = .Columns(1).Find(What:="Custom ", LookIn:=xlValues, _ 
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
        MatchCase:=False, SearchFormat:=False) 
     If Not aCell Is Nothing Then 
      aCell.Value = "Test" 
     Else 
      MsgBox "Not Found" 
     End If 
    End With 

End Sub 

я думаю, что код выглядит хорошо, так что я не знаю, почему первенствует показывает эту ошибку, пожалуйста, помогите, и спасибо заранее

+0

код выглядит нормально. В какой строке это происходит? – brettdj

+0

Защищен ли лист? – Rory

+0

@brettdj, его отказ при установке aCell =. Колонны (1) .Find (..... –

ответ

0

код

aCell.Value = "Test" 

приведет к повторному выполнению кода события!

См. Страницу this, ищите раздел «Предотвращение циклов событий».

Если есть другая информация, которую стоит прочитать.

Так добавив код, подобный этим:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    Target.Value = Target.Value + 1 
    Application.EnableEvents = True 
End Sub 
+0

Я пробовал, и он отлично работал, спасибо вам большое –

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