2017-05-04 44 views
0

Excel文件只是充滿了數字的工作表。一張工作表只包含一次數字。 我有一些代碼通過1000 * 1000的For循環逐個查找所有工作表中的數字。 它查找包含該數字的工作表的名稱,並將其顯示給某人選擇工作表。 一旦選定了工作表,代碼在數字旁邊的單元格上寫上「是」VBA我需要一種方法來研究多個1000 * 1000工作表

什麼樣的搜索方式最快? 感謝

+1

你有沒有嘗試使用Excel的「查找」功能與「工作簿」選項......你甚至可以在VBA中使用它。 –

+0

你有什麼試過?問題是什麼? –

+0

是的我們使用excel查找功能,但因爲我們每天都在使用它,所以我們似乎失去了很多時間。 VBA宏將是完美的。 –

回答

0

下面的代碼將通過每個工作表搜索工作簿和評論後搜索的號碼2(更改到你想要的),然後在單元格中寫Yes旁邊

更新代碼

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

只是一個問題:從所有包含我尋找的號碼的工作表中,我希望能夠從列表中選擇一個所有包含該號碼的工作表,那麼我們如何修改這段代碼呢? –

相關問題