excel vba代码在列中查找值的速度很慢,如何使其更快?
下面是我的vba代码,如何做得更快?obs:我有+-33000行值 我从产品中搜索代码到我的公司,我需要帮助才能更快地完成excel vba代码在列中查找值的速度很慢,如何使其更快?,excel,vba,find,range,offset,Excel,Vba,Find,Range,Offset,下面是我的vba代码,如何做得更快?obs:我有+-33000行值 我从产品中搜索代码到我的公司,我需要帮助才能更快地完成 Private Sub TextBox1_Enter() Dim FindString As String Dim Rng As Range FindString = TextBox1.Text If Trim(FindString) <> "" And Len(TextBox1.Text) = 6 Then With Sheets("CADMAT").R
Private Sub TextBox1_Enter()
Dim FindString As String
Dim Rng As Range
FindString = TextBox1.Text
If Trim(FindString) <> "" And Len(TextBox1.Text) = 6 Then
With Sheets("CADMAT").Range("B:B") 'searches all of column B
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Dim ultimalinha As Object
Set ultimalinha = Plan3.Range("A35565").End(xlUp)
ultimalinha.Offset(1, 0).Value = TextBox1.Text
ultimalinha.Offset(1, 1).Value = TextBox2.Text
TextBox1.Text = ""
TextBox2.Text = ""
TextBox1.SetFocus
Else
MsgBox "Produto não existe na tabela!" 'value not found
TextBox1.Text = ""
TextBox2.Text = ""
TextBox1.SetFocus
End If
End With
End If
End Sub
选项显式
专用子文本框1\u输入
Application.ScreenUpdating=False
代码在这里
Application.ScreenUpdating=True
End SubGeneral从专门针对您的代码的quick改为up,不清楚为什么这样慢。您似乎正在执行一个查找操作,最多有2个更新。您对.SetFocus的调用可能无法很好地处理TextBox1\u Enter上的事件。虽然你的If会在第一次转圈后抓住这个,这样应该不会太糟糕。在后面使用.Cells.Cells.Count的任何原因:=?似乎这与B1中的开始相同,因为这一直到列的末尾。事实上,我加入了一个要清点的产品列表,如果产品存在于表“CADMAT”中,他会将该产品插入该列表,如果该列表告诉msgbox该产品不存在,但是,此返回“不存在”,它花费的时间太长,似乎表“没有响应”。有谁需要我帮忙吗?如果找不到该项目,如何改进搜索?