Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: cxzfy12758

[已解决]VBA怎么实现这样的模糊查找?

[复制链接]
发表于 2010-11-27 20:51 | 显示全部楼层

4mjTZb16.rar (22.46 KB, 下载次数: 38)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2010-11-27 20:52 | 显示全部楼层

QUOTE:
以下是引用liuguansky在2010-11-27 20:38:00的发言:
介意给个最佳吗?
QUOTE:
不介意啊,非常感谢。
回复

使用道具 举报

发表于 2010-11-27 21:04 | 显示全部楼层

VBA怎么实现这样的模糊查找?

VBA怎么实现这样的模糊查找?

这个位置可以把你认为最能解决你问题的答案评为最佳,也是对帮你的人的一种肯定。
回复

使用道具 举报

 楼主| 发表于 2010-11-27 21:14 | 显示全部楼层

QUOTE:
以下是引用liuguansky在2010-11-27 21:04:00的发言:

这个位置可以把你认为最能解决你问题的答案评为最佳,也是对帮你的人的一种肯定。

我的没有出现评最佳的地方。

回复

使用道具 举报

发表于 2010-11-27 21:16 | 显示全部楼层

在你认为最满意的答案 的帖子上 邮箱的后边有个设为最佳答案

回复

使用道具 举报

 楼主| 发表于 2010-11-27 21:27 | 显示全部楼层

QUOTE:
以下是引用fjmxwrs在2010-11-27 17:25:00的发言:

看看这是否是你想要的?

[upload=rar]viewFile.asp?ID=143323[/uplo
先满足第一个,然后在满足第二个。怎么办?谢谢
回复

使用道具 举报

发表于 2010-11-27 21:56 | 显示全部楼层

QUOTE:
以下是引用搁浅2008在2010-11-27 20:51:00的发言:

[此贴子已经被作者于2010-11-27 21:58:59编辑过]

回复

使用道具 举报

发表于 2010-11-27 22:05 | 显示全部楼层

修改后的代码是

Sub aa()
    Dim rng As Range
    Dim arr
    Dim a As String
    Dim i As Long
    arr = Sheet1.Range("A4:C" & Sheet1.Range("A65536").End(xlUp).Row)
    a = Sheet2.Range("A2")
    Sheet2.Range("A4:AL65536").Delete
    For i = 1 To UBound(arr, 1)
        arr(i, 1) = arr(i, 1) & arr(i, 2) & arr(i, 3)
    Next i
    For i = 1 To UBound(arr, 1)
        If InStr(arr(i, 1), a) Then
            If rng Is Nothing Then
                Set rng = Sheet1.Rows(i + 3)
            Else
                Set rng = Union(rng, Sheet1.Rows(i + 3))
            End If
        End If
    Next i
    If Not rng Is Nothing Then
        rng.Copy Destination:=Sheet2.Range("A4")
    End If
End Sub

回复

使用道具 举报

 楼主| 发表于 2010-11-27 22:47 | 显示全部楼层

QUOTE:
以下是引用搁浅2008在2010-11-27 22:05:00的发言:

修改后的代码是

Sub aa()
    Dim rng As Range
    Dim arr
    Dim a As String
    Dim i As Long
    arr = Sheet1.Range("A4:C" & Sheet1.Range("A65536").End(xlUp).Row)
    a = Sheet2.Range("A2")
    Sheet2.Range("A4:AL65536").Delete
    For i = 1 To UBound(arr, 1)
        arr(i, 1) = arr(i, 1) & arr(i, 2) & arr(i, 3)
    Next i
    For i = 1 To UBound(arr, 1)
        If InStr(arr(i, 1), a) Then
            If rng Is Nothing Then
                Set rng = Sheet1.Rows(i + 3)
            Else
                Set rng = Union(rng, Sheet1.Rows(i + 3))
            End If
        End If
    Next i
    If Not rng Is Nothing Then
        rng.Copy Destination:=Sheet2.Range("A4")
    End If
End Sub

我的意思是查询A2,然后还可以继续查询B2或者后面的数据。

回复

使用道具 举报

发表于 2010-11-28 08:47 | 显示全部楼层

跟来学习

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 07:50 , Processed in 0.320339 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表