2016-12-30 35 views
1

誰かが私を取得していますように私のコードで間違っているものを指摘することができます設定されていません...実行時エラー91 - オブジェクト変数またはWithブロック変数が

ファイル名を指定して実行時エラー91 - オブジェクト変数またはブロック変数で

ループc2.Address <> Eながら

以下のコードでは、この行に

を設定しません

Dim Cell As Range 
Dim SrchRng2 As Range 
Dim c2 As Range, e As String 

'Check each row in column - if BLUE text (set by CF) change to #N/A 
For Each Cell In Intersect(Columns("E"), ActiveSheet.UsedRange) 
    If Cell.DisplayFormat.Font.ColorIndex = 5 Then Cell.Value = "#N/A" 
Next 
On Error GoTo NoBlueText 
'Search column E for cells with #N/A and clear cells across columns E:G in row 
Set SrchRng2 = ActiveSheet.Range("E2", ActiveSheet.Range("E" & Rows.Count).End(xlUp)) 
Set c2 = SrchRng2.Find("#N/A", LookIn:=xlValues) 

If Not c2 Is Nothing Then 
    e = c2.Address 
Do 
      ActiveSheet.Range("E" & c2.Row & ":G" & c2.Row).Cells.ClearContents 
     Set c2 = SrchRng2.FindNext(c2) 
    Loop While c2.Address <> e 
End If 

NoBlueText: 
+0

ループの開始を示す最初の「Do」はありません。 –

+0

申し訳ありませんがコード内にDoがありましたが、このページに転送中に入力するのを忘れてしまいました。エラーは依然として存在する – BradleyS

+1

最後に、それらをクリアするときにもう見つからないという事実に対処する必要があります。 C2が何もないか、または<> to eであるかどうかをテストし、ループがテストする項目としてブール値を設定する必要があります。 –

答えて

4

"#N/A"をセルに配置してから検索するので、最初の段階で直接行動するのが簡単ではないでしょうか?

With ActiveSheet 
    With .Range("E2", .Cells(.Rows.count, "E").End(xlUp)) 
     For Each cell In .Cells 
      If cell.DisplayFormat.Font.ColorIndex = 5 Then cell.Resize(, 3).ClearContents 
     Next 
    End With 
End With 
関連する問題