『壹』 VBA模糊查询sheet1,并将资料复制至sheet2
Subsousuo()
DimrAsLong
DimcAsLong
DimstrAsString
DimrngAsRange
str=InputBox("输入搜索内容")
IfLen(str)=0ThenExitSub
c=Sheets("Sheet2").Range("A65536").End(xlUp).Row
Sheets("汇总").Activate
Forr=1To[A65536].End(xlUp).Row
Setrng=Rows(r).Find(str,LookIn:=xlValues,LookAt:=xlPart)
IfNotrngIsNothingThen
Rows(r).Copy
c=c+1
Worksheets("Sheet2").Range("A"&c).PasteSpecial_
Paste:=xlPasteAll,Operation:=xlNone,_
SkipBlanks:=False,Transpose:=False
EndIf
Next
Application.CutCopyMode=False
EndSub
『贰』 如何用VBA实现在多个sheet中进行模糊查询,并将包含关键字的一整行复制至指定位置
SubMySearch()
Dimws(6)AsWorksheet
Dimc1AsRange,c2AsRange
Dimr
Setws(1)=Worksheets("Sheet1") '请自行修改为实际的工作表名
Setws(2)=Worksheets("Sheet2") '请自行修改为实际的工作表名
Setws(3)=Worksheets("Sheet3") '请自行修改为实际的工作表名
Setws(4)=Worksheets("Sheet4") '请自行修改为实际的工作表名
Setws(5)=Worksheets("Sheet5") '请自行修改为实际的工作表名
Setws(6)=Worksheets("Sheet6") '请自行修改为实际的工作表名
ws(6).Cells.Clear
Setc2=ws(6).Range("A1")
Forr=1To1000 '由于未说明Sheet5中A列关键字的行数,且其中有空行,请自行修改为实际的行数
Setc1=ws(5).Range("A"&r)
Ifc1Like"1*"Then
ws(3).Cells.Find(c1,lookat:=xlWhole).EntireRow.CopyDestination:=c2
ElseIfc1Like"05*"Then
ws(1).Cells.Find(c1,lookat:=xlWhole).EntireRow.CopyDestination:=c2
ElseIfc1Like"0*"Then
ws(2).Cells.Find(c1,lookat:=xlWhole).EntireRow.CopyDestination:=c2
ElseIfc1<>""Then
ws(4).Cells.Find(c1,lookat:=xlWhole).EntireRow.CopyDestination:=c2
EndIf
Setc2=c2.Offset(1,0)
Nextr
EndSub
『叁』 excel vba 窗体文本框输入内容对列表框内容进行模糊查找,结果在列表框中显示,求代码。
给出你的数据源,写明你的确定的要求,模糊查找是以那个字段进行模糊查找。
『肆』 excel vba 里怎么实现模糊查询,需要代码 我做了这样一个窗口,随便在一栏中输入信息,能模糊查询出信息
有窗体,还要给出源数据的格式,最好截图
模糊查询 用FIND 或者like 比较符都可以
窗体上少一个数据输出控件,建议用listview 或者listbox。用于显示模糊查询到的内容
『伍』 excel vba 窗体文本框输入内容对列表框内容进行模糊查找,结果在列表框中显示,并可以点击提取 跪求代码。
'模糊查询代码
DimiAsLong
DimjAsLong
Me.品名查询.MultiSelect=fmMultiSelectMulti
Fori=0ToMe.品名查询.ListCount-1
Me.品名查询.Selected(i)=False
Forj=0ToMe.品名查询.ColumnCount-1
IfMe.品名查询.Column(j,i)Like"*"&Me.TextBox1.Text&"*"Then
Me.品名查询.Selected(i)=True
ExitFor
EndIf
Next
Next
'提取的代码提取出的内容会放在一个新工作表中
DimiAsLong
DimjAsLong
DimkAsLong
DimshtAsWorksheet
Fori=0ToMe.品名查询.ListCount-1
IfMe.品名查询.Selected(i)Thenj=j+1
Next
Ifj=0ThenMsgBox"没有选中行":ExitSub
Setsht=ThisWorkbook.Worksheets.Add
k=1
Fori=0ToMe.品名查询.ListCount-1
Forj=0ToMe.品名查询.ColumnCount-1
IfMe.品名查询.Selected(i)Thensht.Cells(k,j+1)=Me.品名查询.Column(j,i)
Next
k=k+1
Next
『陆』 vba查询代码
1、查询第B到J列(也包括L到S列)内的内容,如果查询到,则返回第A列(或第K列内)的值。请问代码应该怎么写??
For M=1 to 最大行数
If Sheet1.Cells(M, 2).Value="搜寻值" Then '第2列代表合并后的B到J列
Msgbox Sheet1.Cells(M, 1).Value '返回第A列内容
End If
If Sheet1.Cells(M, 12).Value="搜寻值" Then '第12列代表合并后的L到S列
Msgbox Sheet1.Cells(M, 11).Value '返回第K列内容
End If
Next
2、把几列或几行进行合并居中后,这个单元格应该如何用坐标表示呢??
是以合并单元格中那个最左最上角的单元格坐标为准,如上面第一题的回答。
记得给分,:)
----------------------------------------------------------------------
1、查询第B到J列(也包括L到S列)内的内容,Sheet1.Cells(M, 2).Value="搜寻值" Then ,这个必须要全部字符串匹配吧,事实上我只查询这个单元格内的某一个词组啊。
那可以用模糊查询:If Instr(Sheet1.Cells(M, 2).Value,"搜寻值")>0 Then
2、 Msgbox Sheet1.Cells(M, 1).Value '返回第A列内容,
有可能查询到的第“M”行,并不是“最左最上角的单元格”,所以(M,1)其实是没有值的。怎么解决呢?
这个没有任何影响,也不会报错,例如第M行和第M+1行是行合并的单元格,且合并后的单元格内容为“测试”二字,则:
Msgbox Sheet1.Cells(M, 1).Value '返回的是“测试”二字
Msgbox Sheet1.Cells(M+1, 1).Value '返回的是“”空值,并不影响其他匹配和筛选操作、也不会报错,因此循环的时候就算轮到合并后的空行也没有关系的,你可以试试。
『柒』 vba模糊查询的条件要根据单元格的内容变化
你这些代码是在VBA中的吗?如果是vba里,应该有双引号的。
一般是定义一个变量为这句话,然后再执行变量。所以你的这个应该是
msql="selet*fromuserwherenamelike'%小%'orderbyidasc"
如果用A1单元格的话就是
msql="selet*fromuserwherenamelike'%"range("a1")&"%'orderbyidasc"
这样,就将A1的值转成了这一句代码中的一部分。
『捌』 Excel 如何用vba实现模糊查找
1、使用like + 通配符:? 代替一个字节; * 表示多个字节;
举个简单的例子:
if cells(1,1).value like "苹果*" 表示判断单元格A1的值是否是以“苹果”开头,后面还可以有其他汉字或字符
if cells(1,1).value like "*苹果*" 表示判断 A1的里面的内容为 包含苹果俩字
[A-D]* 表示A-D开头的字符串
等等;
2、正则表达式,这个用起来很Nice,但是比较复杂一点,我就不介绍了,上面够你用了,如果需要你去网络下,很多地方都有介绍
再配合你需要的查找功能进行条件循环遍历查找即可(如果你懂vba的话)。
『玖』 excel vba 模糊搜索,模糊匹配,查找功能
模糊查询很好实现啊。
cells.find(查找值,look:=xlpart)