【发布时间】:2012-03-29 08:32:07
【问题描述】:
使用 Excel 工作表,我正在尝试搜索与其单元格值中的某些条件匹配的行。
我需要类似 SQL SELECT 查询的东西来通过 Excel 工作表进行搜索,VBA 中有这样的方法吗?一种返回与搜索条件匹配的行范围的方法。
我已尝试使用 Range AutoFilter 方法,但无法将返回的对象用作 Range 来访问返回行中的单元格。
如果我的问题看起来很奇怪或愚蠢,我真的很抱歉 Excel VBA 很抱歉
【问题讨论】:
-
VBA 中没有直接的等价物。您可以直接对 Excel 工作表运行 SQL 查询,但这会返回 ADO 记录集而不是匹配行的范围。但是,如果您的行具有唯一 ID,您可以从记录集映射回行。如果您使用自动过滤器,那么不匹配的行将被隐藏,您应该能够相当容易地获取剩余的行。
-
在多列范围内搜索内容,还是在查询中查找适当字段?高级过滤器允许您使用标准进行这种类型的查询。
-
@Walidix:您始终可以使用 ADO 来查询电子表格...正如上面的评论者所说,它将返回一个 ADO 记录集,但您可以轻松找到一种方法来操作该集合,但是您需要.
-
...您可以使用
Range.CopyFromRecordset方法将ADO Recordset 数据写入工作表,也可以使用ADORecordset.GetRows方法和Excel 的Transpose方法将数据写入@ 987654324@对象。
标签: sql excel vba select autofilter