我以前使用VBA生成图片,代码如下所示,它从未发生过任何错误。但是当我从2010年到2016年升级微软件办公版本的时候,它就发生了
“运行时错误”-2147221040 (800401d0)‘

偶尔,如果我试着重新运行相同的宏,就可以了。有办法解决这个问题吗?提前谢谢~~
Sub Chart_generate()
Dim j As Byte
Dim Max As Byte
Dim TOOL As String
Dim WCpath As String
Sheets("pivot").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
ActiveWindow.Zoom = 130
Max = Range("AO1")
For j = 2 To Max + 1
TOOL = Range("AN" & j)
ActiveSheet.PivotTables("PivotTable1").PivotFields("TOOL").CurrentPage = TOOL
ActiveSheet.ChartObjects("Chart1").Activate
WCpath = "D:\users\Picture\" & TOOL & "_Pressure.png"
ActiveChart.ChartArea.Select
ActiveChart.Export (WCpath)
Next j
ActiveWindow.Zoom = 100
Range("A2").Select
End Sub发布于 2020-10-07 19:53:07
当将隐藏工作表上生成的图形移到可见工作表上,然后重新调整它们的大小时,我也会遇到类似的问题。
我的代码在一个大循环中重复多次(在下面的代码中没有看到),它的工作频率更高,但会周期性地失败。如果我使用调试器和单步,它总是完美的工作;这只是一个问题时,运行全速。
我尝试过网络上的解决方案,包括DoEvents和On Error技巧。我添加了一个While循环和一些口头反馈,以帮助识别导致问题的代码。
我经常听到“运行时2”而不是“运行时1”。它总是在调试器中运行,但在某些计算机上偶尔会出现故障。在失败期间,如果我单击图片,对象的名称将不会出现在工作表的左上角框中。
在被测试的十一台机器中,我看到了其中三台的问题。我的工作比大多数更好,这对代码开发人员来说是个问题!
直方图秒
Sheets("Histogram").Activate
ActiveSheet.Shapes.Range(Array("pi_Histogram")).Select
DoEvents
On Error Resume Next
errflag = 0
Selection.Copy
While Err.Number = 1004 And errflag < 10
Err.Number = 0
Application.Speech.Speak "runtime 1"
Selection.Copy
errflag = errflag + 1
Wend
Sheets("Raw Data").Select
Range("V23").Select 'start insertion point for coefficients table
ActiveCell.Offset(1, 10 + segment).Select
DoEvents
errflag = 0
ActiveSheet.Pictures.Paste.Select
While Err.Number <> 0 And errflag < 10
Err.Number = 0
Application.Speech.Speak "runtime 2"
ActiveSheet.Pictures.Paste.Select
errflag = errflag + 1
Wend
On Error GoTo 0发布于 2020-12-18 17:26:47
终于来了!答案是由我的公司IT专业人士找到的。此问题与实际选择的VBA代码无关,该问题是在Windows管理虚拟内存时出现的。Office 2016是内存大户,分配的虚拟内存不够高。当在拥有16 on内存的机器上手动将VM设置更改为自定义大小、初始size=24000和最大size=48000时,问题就完全解决了。显然,当移动/调整图形和/或图片时,需要使用大量内存,默认设置“自动管理所有驱动器的分页文件大小”并不是正确的设置。
发布于 2021-12-13 11:21:45
关闭剪贴板功能将有助于解决以下问题:

https://stackoverflow.com/questions/62767136
复制相似问题