2012-02-10 28 views
0

私はExcelでVBAを使用していますが、引用符なしでテキスト "概要"をセル内で検索しようとしています。セルは最初の列にあり、その行がどこにあるのかを知りたいのですが、そこにあることがわかります。ワークブックを見ると、それが見えます。しかし、私の条件は '見つからない場合は何もありません'は実行されず、値が見つからないことを意味します。私の発見に何が間違っているのですか?どうすればこの問題を解決できますか?ありがとう。このVBAの検索機能が検索文字列を検索しないのはなぜですか?

Sub RemoveFooterRows(theFile) 
Dim found As Range 
Set found = Workbooks(theFile).Worksheets(1).Columns(1).Find _ 
    ("Summary", , xlValues, xlPart, xlByRows, xlNext, False, , False) 


If Not found Is Nothing Then 
    MsgBox ("val is inif " & found.Row) 
' Workbooks(theFile).Close 
End If 

End Sub 
+4

それは隠されたシートは、ブックにあります可能ですか?それが最初のシートだったら、それはあなたの問題を説明するでしょう。代わりに名前で参照できますか? –

+1

"Sheet3"という名前のシートは実際にはシート番号4であり、Sheet3またはWorksheets(3)への参照は失敗します。 – Fionnuala

+0

名前で参照することは可能かもしれませんが、私はそうしたくないでしょう。シート名はまだ変更されていませんが、変更される可能性があります。第1非隠しシートを参照する方法はありますか?私は隠されたシートがあると信じていません。どうすれば確認できますか? – Brian

答えて

0
Public Sub RemoveFooterRows(theFile) 

    Dim res As Variant, ws As Worksheet 

    On Error Resume Next 
    For Each ws In Workbooks(theFile).Worksheets 

     res = Application.WorksheetFunction.Match("Summary", ws.Range("A:A"), 0) 
     If IsEmpty(res) = False Then 
      MsgBox "Val is inif " & res 
      GoTo Skip 
     End If 

    Next ws 
    On Error GoTo 0 

End Sub 
関連する問題