2017-05-04 15 views
0

Excelファイルは、数字でいっぱいのワークシートで満ちています。 1つのワークシートには1つの番号しか含まれていません。 私は、1000 * 1000のForループで、すべてのワークシートを通して番号を1つずつ探し出すコードを持っています。 この番号を含むワークシートの名前を見つけ、誰かがワークシートを選択するためにそれを表示します。 ワークシートが選択されると、番号の隣のセルにコードが「はい」と書き込まれますVBA複数の1000 * 1000のワークシートを調べる方法が必要

数字を検索する方法はどのようにすばやくなりますか? おかげ

+1

「ブック」オプション付きのExcelの「検索」機能を試しましたか... VBAでも使用できます。 –

+0

何を試しましたか?何が問題でしたか? –

+0

はいExcelの検索機能を使用していますが、毎日使用しているので、時間がかかりそうです。 VBAマクロは完璧です。 –

答えて

0

以下のコードは、ブック内の各ワークシートを検索し、コメント後、その隣のセルにYesを書き、その後

更新されたコードを(あなたが望むものに変更)数2を検索します

Option Explicit 
Public Sub FindNumber() 
    Dim c As Range, firstAddress As Range 
    Dim client As String 
    Dim ticket As Integer 
    Dim calc As Long 

    With Application 
     .ScreenUpdating = False 
     calc = .calculation 
     .calculation = xlCalculationManual 
    End With 

    client = InputBox("Please enter client name and ticket number (e.g. Client, ticketnumber)") 

    On Error GoTo Err 

    ticket = Int(Split(client, ",")(1)) 
    client = Split(client, ",")(0) 

    With ThisWorkbook.Sheets(client).UsedRange 
     Set c = .Find(what:=ticket) 
     If Not c Is Nothing Then 
      Set firstAddress = c 
      Do 
       c.Offset(0, 1) = "Yes" 
       Set c = .FindNext(c) 
      Loop Until Not c Is Nothing And c.Address = firstAddress.Address 
     End If 
    End With 

    With Application 
     .calculation = calc 
     .ScreenUpdating = True 
    End With 

    Exit Sub 
Err: 
    MsgBox "Couldn't find Client or ticket number" 
    With Application 
     .calculation = calc 
     .ScreenUpdating = True 
    End With 
End Sub 
+0

お返事ありがとうございます! –

+0

これがあなたの質問に答えるならば、それの隣にあるチェックマークをクリックして答えを – Tom

+0

にしてください。ちょうど問題です:あなたが探している番号を含むすべてのワークシートから、私はリストから1つしか選べません。その番号を含んでいるすべてのワークシートですが、このコードを修正するにはどうしたらよいでしょうか? –

関連する問題