Excel文件只是充滿了數字的工作表。一張工作表只包含一次數字。 我有一些代碼通過1000 * 1000的For循環逐個查找所有工作表中的數字。 它查找包含該數字的工作表的名稱,並將其顯示給某人選擇工作表。 一旦選定了工作表,代碼在數字旁邊的單元格上寫上「是」VBA我需要一種方法來研究多個1000 * 1000工作表
什麼樣的搜索方式最快? 感謝
Excel文件只是充滿了數字的工作表。一張工作表只包含一次數字。 我有一些代碼通過1000 * 1000的For循環逐個查找所有工作表中的數字。 它查找包含該數字的工作表的名稱,並將其顯示給某人選擇工作表。 一旦選定了工作表,代碼在數字旁邊的單元格上寫上「是」VBA我需要一種方法來研究多個1000 * 1000工作表
什麼樣的搜索方式最快? 感謝
下面的代碼將通過每個工作表搜索工作簿和評論後搜索的號碼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
非常感謝您的回答! –
如果這回答您的問題,請點擊旁邊的勾號將其標記爲已回答 – Tom
只是一個問題:從所有包含我尋找的號碼的工作表中,我希望能夠從列表中選擇一個所有包含該號碼的工作表,那麼我們如何修改這段代碼呢? –
你有沒有嘗試使用Excel的「查找」功能與「工作簿」選項......你甚至可以在VBA中使用它。 –
你有什麼試過?問題是什麼? –
是的我們使用excel查找功能,但因爲我們每天都在使用它,所以我們似乎失去了很多時間。 VBA宏將是完美的。 –