2015-04-05 83 views
0

請幫助調試:運行時錯誤「438」對象不支持此屬性或方法Excel的VBA:運行時錯誤「438」對象不支持此屬性或方法帶有「範圍」

我不知道爲什麼我的聲明Set ImCrazy = .Find(「Total」)不起作用。

「總計」是約23個細胞的一部分。我基本上要找到每一個,選擇它,然後將1個細胞在和輸入功能等

Sub Utilization() 

'Utilization Macro 

'Keyboard Shortcut: Ctrl+u 

Dim lastRow As Long 
Dim x As Integer 
Dim knt As Integer 
Dim ImCrazy As Range 

    With ActiveSheet 
     ActiveCell.Offset(3, 0).Range("A1").Select 
     Range(Selection, Selection.End(xlToRight)).Select 
     Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
     Selection.AutoFilter 
     .Range("$A$4:$F$800").AutoFilter Field:=3, Criteria1:="0" 
     ActiveCell.Offset(6, 1).Range("A1").Select 
     lastRow = .Range("A" & Rows.Count).End(xlUp).Row 
     .Range(.Range("b2"), .Range("b" & lastRow)). _ 
       SpecialCells(xlCellTypeVisible).Value = _ 
         "0" 
         ActiveCell.FormulaR1C1 = "0" 

     .Range("$A$4:$F$800").AutoFilter Field:=3 
     .Range("a1").Select 
     .Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
     Set ImCrazy = .Find("Total", xlValues, xlPart, xlByRows, xlNext, False, False) 

     If Not ImCrazy Is Nothing Then 
      ImCrazy.Offset(0, 1).Value = "=SUM(R[-" & knt & "]C:R[-1]C)" 
      ImCrazy.Offset(0, 3).Value = "=(RC[-1]+RC[2])/RC[-2]" 
     Else 
      MsgBox "'Total' not found'" 
     End If 
    End With 
End Sub 

我還需要這是一個循環,所以它會繼續檢查單詞「總「

總結 1.我需要關於運行時錯誤的幫助 2.我需要幫助構建代碼來重複查找」total「並插入函數。

在此先感謝!

回答

0

您需要遵循Range Object Find Method的正確語法。
所以下面一行不起作用,因爲:

Set ImCrazy = .Find("Total", xlValues, xlPart, xlByRows, xlNext, False, False) 
  1. 它沒有指定的範圍內。使用點.表示您試圖從ActiveSheet調用屬性或方法。結果爲Error 428,因爲工作表對象實際上沒有Find Method
  2. 您沒有提供參數名稱,但您沒有包含After參數。即使你糾正了對象引用,它仍然會失敗。

試試這個:

.Cells.Find("Total") ' This finds a cell that contains "Total" in the ActiveSheet 

現在,如果你需要找到所有出現,那麼你就必須使用循環和FindNext Method

相關問題