我有一个客户端/工作数据库,我希望能够对其进行部分和完整搜索。该数据库包括至少19个不同的数据,例如公司名称,公司地址,联系点,工作开始和结束日期,工作收入等。
我有一个搜索字段,我可以输入不同的列输入并搜索相关的客户端。例如,如果我键入客户端名称,它将返回该客户端的所有作业。如果我搜索201X,它将返回201X年完成的所有工作。此返回的数据将填充为搜索框下方的列表。
我目前的问题是我无法进行部分搜索。例如。我必须输入“通用电气”,而不是“电气”。我使用的VBA代码如下所示。任何帮助将不胜感激!
Option Compare Text
Sub SearchClientRecord()
Dim Search As String
Dim Finalrow As Integer
Dim SearchFinalRow As Integer
Dim i As Integer
Dim scs As Worksheet
Dim scd As Worksheet
Set scs = Sheets("Client Search")
Set scd = Sheets("Client Database")
scs.Range("C19:S1018").ClearContents
Search = scs.Range("C12")
Finalrow = scd.Range("D100000").End(xlUp).Row
SearchFinalRow = scs.Range("D100000").End(xlUp).Row
For j = 3 To 19
For i = 19 To Finalrow
If scd.Cells(i, j) Like Search Then
scd.Range(scd.Cells(i, 3), scd.Cells(i, 19)).Copy
scs.Range("C100000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End If
Next i
Next j
scs.Range("C19:S1018").Select
scs.Range("$C$18:$S$1009").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6 _ , 7), Header:=xlYes
Call Border Columns("C:S").HorizontalAlignment = xlCenter
End Sub
Sub AddJobDetail()
JobDetailForm.Show
End Sub
答案 0 :(得分:2)
使用Instr函数在另一个字符串中找到一个字符串 - https://msdn.microsoft.com/en-us/library/8460tsh1(v=vs.90).aspx
e.g。替换
If scd.Cells(i, j) Like Search Then
与
if Instr(scd.Cells(i,j), Search) > -1 then
但是如果你有'通用电气'和'电动汽车',当然要小心打字'电':)