VBA 按条件筛选数据库记录导出Excel(如何加快写入速度)

VBA 按条件筛选数据库记录导出Excel(如何加快写入速度),第1张

你这样循环查询是不科学了,上万记录会慢死,应该一次性读出所有数据,然后去填写:

'建立已经字典,把数据库内容存入字典

set daList = CreateObject("ScriptingDictionary")

rsOpen "select DA,B1,S1,M1,St1,R1 from `A`", conn

Do While Not rsEOF()

     daListAdd rs(1), Array(rs(2),rs(3),rs(4),rs(5),rs(6))

     rsMoveNext

Loop

'填写EXCEL表

for i=2 to Cells(rowscount, "D")End(xlUp)Row

    da = Cells(i,"D")

    if daListExists(da) then

        Cells(i,"E")resize(5,1) = daList(da)

    else

        Cells(i,"E")resize(5,1) = Empty

    end if

next i

楼主,每个透视表 *** 作上,根据实际的数据类型的什么,差别比较大的。

这儿也不好说怎么来做~

使用Excel 2010或2013,录制宏,然后 *** 作下透视表,就能看到具体怎么 *** 作了。

2007有Bug,不要用的好, *** 作的过程好多看不到。

我也做了好些自动筛选的,贴出来,你看下吧,不细说了,可以实现的。

'创建图表

Set cht = wbdSheets("PivotTable")ChartObjectsAdd(wbdSheets("PivotTable")Cells(1, "J")Left + 8, wbdSheets("PivotTable")Cells(1, "J")Top, 708, 284)

chtName = "图表1"

chtChartChartWizard Source:=tbTableRange1

chtChartSetElement (msoElementChartTitleAboveChart)

k = 0

'根据刷新的数据型号,判断取的不良Code

For Each lotype In tbPivotFields("Type")PivotItems

lotype_1 = lotype

tbPivotFields("Type")CurrentPage = lotype_1

'这个地方就是筛选设定的~~~

If UBound(Filter(pdt, lotype)) = 0 Then

tbPivotFields("DGS%")Orientation = xlHidden

tbPivotFields("GCS%")Orientation = xlHidden

tbPivotFields("GGS%")Orientation = xlHidden

tbPivotFields("Glass Qty")Position = 2

With chtChart

ChartTitleText = lotype_1 & "_Tray别Yield确认@Inv%"

ApplyChartTemplate ( _

"F:\Sputter Daily Report自动化\1图表模板\Tray_Yield_TNcrtx")

End With

Else

tbPivotFields("Inv%")Orientation = xlHidden

tbPivotFields("Glass Qty")Position = 4

With chtChart

ChartTitleText = lotype_1 & "_Tray别Yield确认@DGS/GCS/GGS%"

ApplyChartTemplate ( _

"F:\Sputter Daily Report自动化\1图表模板\Tray_Yield_ADScrtx")

End With

End If

Filter函数实现数组筛选:

数组的筛选就是根据一定的条件,从数组中筛选符合条件的值,组成一个新的数组,实现数组筛选的VBA函数是:

Filter函数

用法:Filter(数组,

筛选的字符,

是否包含)

Sub

DD()

arr1

=

VBAFilter(arr,

"A",

True)

'筛选所有含A的数值组成一个新数组

arr2

=

VBAFilter(arr,

"A",

False)

'筛选所有不含A的数值组成一个新数组

MsgBox

Join(arr2,

",")

'查看筛选的结果End

Sub遗憾的是函数只能进行模糊筛选,不能精确匹配。

以上就是关于VBA 按条件筛选数据库记录导出Excel(如何加快写入速度)全部的内容,包括:VBA 按条件筛选数据库记录导出Excel(如何加快写入速度)、如何用vba实现数据透视表自动筛选、VBA数组如何筛选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10167641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存