excel2007 内存不足,画面不能正常显示,该怎么处理

excel2007 内存不足,画面不能正常显示
excel2007 内存不足,画面不能正常显示

我做了一个vba工具,从db批量检索数据,
然后针对检索出来的每一条数据,印刷50个画面也就是50个sheet页(每个sheet页也从db检索数据),
当印刷完前面几条数据后,就出异常,显示内存不足,然后excel画面就显示不全,变白了。
请问大虾们,谁遇到过这情况,怎么解决的。

我采用了以下方式,还没找到原因:
1:增大虚拟内存
2:每执行完一次就清空剪切板。

我接下来准备调查是不是访问db过于频繁的问题

------解决方案--------------------
看是不是定时器周期太短,查询时间太长,可以考虑阻塞的方式,发现上一次timer_tick没执行完就不执行操作,例如这样,加个标记

VB.NET code
private running as booleen = false

public sub Timer1_Tick()
    if running then exit sub
    running = true
    '你的 操作
    running = false
end sub

------解决方案--------------------
Sub Select_Sql() '定义过程名称
Dim strSQL315 As String
Dim strSQL316 As String
Dim strSQL320 As String

strSQL315 = "SELECT year(getdate())"
strSQL316 = "SELECT month(getdate())"
strSQL320 = ""SELECT day(getdate())"

 GetStoreInf strSQL315, "315"
 GetStoreInf strSQL316, "316"
 GetStoreInf strSQL320, "320"
end sub

Function GetStoreInf(ByVal SheetNo As String, TheNo As String)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCn As String, strSQL As String 
strCn = "Provider=sqloledb;Server= ;Database= ;Uid=sa;Pwd=;"
'strSQL = SheetNo
cn.Open strCn
rs.Open SheetNo, cn 
Set sht = ThisWorkbook.Worksheets(TheNo)
sht.Cells.Clear
For i = 1 To rs.Fields.Count
sht.Cells(1, i) = rs.Fields(i - 1).Name
Next
sht.Range("A2").CopyFromRecordset rs
rs.Close
cn.Close
 strSQL = ""
 strCn = ""
 End Function


有问题你再PM嘛