删除VBA中的特殊字符
我编写了一段代码,在数据库中查找字符串并返回部分匹配给定字符串的结果- 如果“Pet”是要在数据库中搜索的字符串,则结果将是删除VBA中的特殊字符,vba,excel,Vba,Excel,我编写了一段代码,在数据库中查找字符串并返回部分匹配给定字符串的结果- 如果“Pet”是要在数据库中搜索的字符串,则结果将是 皮特 彼得 佩特 P.Petere(我的代码不返回带点/空格(4)的值) “p.Peter”是我要搜索的字符串,它应该会给我结果 皮特 彼得 彼得 但是,到目前为止,我的代码不会返回没有点/空格(3)的值 下面是我的代码-VlookUp是带字符串的工作表,data是包含数据库的工作表。。在VlookUp中,A2包含要匹配的我的字符串,结果在第8行 Sub MyVlookU
VlookUp
是带字符串的工作表,data
是包含数据库的工作表。。在VlookUp
中,A2包含要匹配的我的字符串,结果在第8行
Sub MyVlookUp()
Dim Str As String
Dim c As Range
Dim SrchRng As Range
Sheets("VlookUp").Select
Range("B8:C300").Select
Selection.ClearContents
Str = Worksheets("VlookUp").Range("A8").Value
Worksheets("data").Activate
Set SrchRng = ActiveSheet.Range("B1", ActiveSheet.Range("B65536").End(xlUp))
Set c = SrchRng.Find(Str, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Range(Cells(c.Row, 2), Cells(c.Row, 3)).Copy
With Worksheets("VlookUp")
.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial
End With
Set c = SrchRng.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
Worksheets("VlookUp").Activate
End Sub
Sub MyVlookUp()
作为字符串的Dim Str
调光范围
变光SrchRng As范围
工作表(“VlookUp”)。选择
范围(“B8:C300”)。选择
选择.ClearContents
Str=工作表(“VlookUp”).范围(“A8”).值
工作表(“数据”)。激活
设置SrchRng=ActiveSheet.Range(“B1”,ActiveSheet.Range(“B65536”)。结束(xlUp))
Set c=SrchRng.Find(Str,LookIn:=xlValues)
如果不是,那么c什么都不是
firstAddress=c.地址
做
范围(单元格(c行,2),单元格(c行,3))。复制
带工作表(“VlookUp”)
.Cells(Rows.Count,“B”).End(xlUp).偏移量(1,0).粘贴特殊
以
Set c=SrchRng.FindNext(c)
循环而不是c为Nothing,c.Address为firstAddress
如果结束
工作表(“VlookUp”)。激活
端接头
您是否100%确定,查询P.Peter
的结果应该是记录Pete
?尝试获取作为字符串子集的搜索结果(因此返回值越详尽对我越好)。但是,我的代码在给出结果时无法识别空格和特殊字符。我可以想到的一种方法是,在开始搜索之前,让代码从要搜索的字符串以及数据库值中删除空格、点等。当附加到当前代码中时,该条件可以给出结果,但是它会使返回值出错。我一直在寻找与数据库中相同的返回值。当您还指定LookAt:=xlPart时,返回值的行为是否相同?@Limak知道吗?非常感谢。您是否100%确定,查询P.Peter
的结果应该是记录Pete
?尝试获取作为字符串子集的搜索结果(因此返回值越详尽,对我越有利)。但是,我的代码在给出结果时无法识别空格和特殊字符。我可以想到的一种方法是,在开始搜索之前,让代码从要搜索的字符串以及数据库值中删除空格、点等。当附加到当前代码中时,该条件可以给出结果,但是它会使返回值出错。我一直在寻找与数据库中相同的返回值。当您还指定LookAt:=xlPart时,返回值的行为是否相同?@Limak知道吗?非常感谢。