Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2761|回复: 2

[已解决]求助内存溢出BUG

[复制链接]
发表于 2017-6-6 22:56 | 显示全部楼层 |阅读模式
循环执行下列代码有时会在 .Refresh BackgroundQuery:=False一句提示内存溢出,有时候又不会,请问该如何更改,谢谢。output.txt是个1Kb的小文本文件。
Private Sub 读取txt(shnm As String) 'shnm表示读取的txt输出到的工作表sheet的名字,输入到V列
    Sheets(shnm).Select
    Sheets(shnm).range("V:X").ClearContents
    Set st = ActiveSheet.QueryTables.Add(Connection:="TEXT;E:\JAVA\WordSeg\file\output.txt", Destination:=range("$" & "V" & "$1"))
    With st
        .RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileOtherDelimiter = "/"
        .TextFileColumnDataTypes = Array(2, 2, 1) '用于指定类型
        .Refresh BackgroundQuery:=False
    End With
    Set st = Nothing
End Sub


最佳答案
2017-6-7 09:52
没有附件没有办法测试
加一句,再试试,应该就好了

ON ERROR RESUME NEXT
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-6-7 09:52 | 显示全部楼层    本楼为最佳答案   
没有附件没有办法测试
加一句,再试试,应该就好了

ON ERROR RESUME NEXT
回复

使用道具 举报

 楼主| 发表于 2017-6-8 23:44 | 显示全部楼层
    真的好了,感谢!
    不知道出错原因.不上传附件是因为楼主在程序里调用了JAVA写的一个class文件执行一个写txt的操作,ws = Shell("java -classpath .;E:\JAVA\WordSeg\* wordseg.WordSeg", 0),也可能是这句导致的内存溢出,因为改变这句话的调用模式比如0变成1,执行更少次循环就会跳出内存溢出,问题在于这个bug有时候出现有时候不出现,这次出了bug我在代码里加了“On Error Resume Next”后就能运行了,而且是正常运行,然后把这句“On Error Resume Next”删掉程序仍然能正常运行,不可理解。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 21:12 , Processed in 0.266752 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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