遍历Recordset行,如果为true,则粘贴

时间:2018-10-15 08:24:50

标签: excel vba adodb

我有一个记录集rsDatabase,它是一个SELECT * FROM查询的输出,因此我想使用此记录集,并且仅当该行的特定列中的值为true时才粘贴行。

所以会是这样:

xlRow = 1
Do While Not rsDatabase.EOF
   If rsDatabase(rsDatabaseCol).Value = "example" Then
   'Paste the row here
   xlRow = xlRow + 1
   End If
rsDatabase.MoveNext
Loop

但是我无法确定仅粘贴一行的语法。

1 个答案:

答案 0 :(得分:1)

根据您的评论,我建议使用记录集的filter方法,然后使用CopyFromRecordSet。除非您要在表格顶部添加列名,否则不需要循环。

For i = 0 To rsDatabase.Fields.Count - 1
     Range("A1").Offset(0, i) = rsDatabase.Fields(i).Name
Next i
rsDatbase.Filter = rsDatabaseCol & " = 'example'"
rsDatabase.Range("A2").CopyFromRecordset