QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 2513|回复: 5
收起左侧

[求助] 运行时错误2147417848(斑竹woaishuijia请进)

[复制链接]
发表于 2009-11-12 09:38:58 | 显示全部楼层 |阅读模式 来自: 中国天津

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在程序执行到下面代码时出现此问题:# Z9 ?( V1 z9 U( ~
M1.Create pathmdi123 {% Z3 G% i* ]: J) w" ]; Q0 M
M2.Create pathmdi11
6 G. {+ u! ~( h9 e
1 A$ N" p3 V8 Y提示如下:
& \5 I- Q# H  O5 x4 J, Y untitled.JPG
) W& F) j2 X2 d+ d  g, ]# D+ {- J9 ^
但是在程序第一遍执行时可以正常运行,第二遍即出现此问题; K7 z8 J0 G( k8 W

9 {* o# D3 z, h' U& ]+ ?2 I我的电脑上是office2003,不会出现此问题;但是一旦拿到装office2007的电脑就会出现这个问题9 |$ ], K9 ]9 k$ a' o  T

0 g/ L0 K9 \) [; n& k; c3 f请问是怎么回事?如何解决?
$ N9 g% ]# ?& a0 P7 X- m( ?7 l" R9 P$ [
3 A% B+ F$ {( z& {9 |2 ~不知道斑竹woaishuijia是否遇到过此问题?或者其他朋友是否遇到过此问题?如果有解决方案,请不吝赐教,不胜感激
发表于 2009-11-12 17:07:57 | 显示全部楼层 来自: 中国
没用过office2007,猜想可能是 2007 版 Office Document Imaging 与 2003 版不同。建议到 MSDN 网站查看一下 office2007 的 VBA 参考。如果原因是这样的话,就需要在程序中加入识别版本并区别对待的内容。7 z/ _! c! C3 Y! K9 y7 d# \
另外,引用的对象是否正确?& L) A7 @8 z1 E/ @( Z& {( @
还有,M1、M2 、M3 这些变量用过之后,是否有用 M1.Close 和 Set M1 = Nothing 语句关闭进程?: f, E" o& {% L; U6 ?3 n
附件是《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,以前从 MSDN 下载的。

MSPAUTO.rar

339.97 KB, 下载次数: 3

 楼主| 发表于 2009-11-12 19:29:11 | 显示全部楼层 来自: 中国天津
谢谢斑竹+ @% r, F1 c6 q; }6 m

. G; M, ]$ c& u; e7 R# h引用的对象应该是正确的
4 v5 Z6 f" H$ b1 P3 D: `0 ~$ r* W4 h: [1 `" W/ a8 Y
因为对象是在前一段程序中生成的,而且第一次运行时可以正确执行并输出期望的结果,但第二次就会出现偏移,plottofile方法输出的图形相对于图纸发生偏移,目前没有找到原因,第三次运行时会出现本贴所说的错误提示- p$ }) e2 r& z% J4 v; D9 D1 h

1 N0 e' Y6 T8 e2 C2 Y5 s为了切断其他可能的联系,我重建了个按钮,输入如下程序:
+ m3 r) F7 g: d2 O( xpublic aa as long 9 B! T' Y' L$ d( A- T
Private Sub CommandButton9_Click()
% l" b; v4 o2 ~5 YDim M1 As MODI.Document, M2 As MODI.Document  '合并
1 g" P/ [& W# u3 U% c: ]Dim bb, path As String
) F1 T% s- a1 C2 R) haa = aa + 100& t9 ]3 F2 D' x% y2 W6 p
bb = Str(aa)" g; l" e4 n; A- s+ k( F
path = "d:\我的图纸\" & bb & ".mdi", I& Q+ L9 o. y! x/ s$ b  G  M" L
Set M1 = New MODI.Document. L( k% L- i$ v4 z2 Z) T
    Set M2 = New MODI.Document
3 E4 C( s0 M/ A, v9 b, ?    M1.Create "d:\我的图纸\1111.mdi"
) B& c# J' _  b" _3 Q, K    M2.Create "d:\我的图纸\2222.mdi"
+ e5 q* U8 r7 l% G; n6 C+ G( z2 ~    M1.Images.Add M2.Images(0), Nothing
& S4 X* C& l1 ?) c    M1.SaveAs path' b% R4 G; X6 v. c
    M1.Close
7 u; r" [4 c. U+ o. [* k    M2.Close
" v7 q/ c8 A3 y+ X- H; w& L0 i; HEnd Sub
# f+ i8 Z4 Q/ N! t- Z此程序在office 2003下正常运行,而在office2007也可以运行,但是仍然会不定时的出错,相同的错误提示
发表于 2009-11-12 20:04:27 | 显示全部楼层 来自: 中国
在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试
 楼主| 发表于 2009-11-13 08:23:52 | 显示全部楼层 来自: 中国天津
原帖由 woaishuijia 于 2009-11-12 20:04 发表 http://www.3dportal.cn/discuz/images/common/back.gif4 F! K& m5 @! K5 i& l
在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试
6 f- ~& c8 S5 x. T& X
/ x; R6 R5 `* V+ x
试过了,没用/ q0 l2 {: F0 z0 h# y( R1 Z
8 D( |- {: I. ?* f& R; l% J

+ d2 s) P& j' K+ |) l7 I3 T6 S7 G测试发现:有时候程序会死在  M1.Create "d:\我的图纸\1111.mdi"  这一句,一直在这里运行,不再向下执行,但如果暂停然后再运行,则出现致命错误3 j! F( ~/ F4 {# L$ b7 u7 ?
6 s& R/ H0 p/ X& j+ V
另外,我去MSDN网站看了一下,只有《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,没有适用于office2007的版本
! E) J" l, @$ h5 h8 }) [5 {, R1 i/ @$ `3 r
[ 本帖最后由 157787698 于 2009-11-13 08:47 编辑 ]
 楼主| 发表于 2009-11-13 08:26:07 | 显示全部楼层 来自: 中国天津
还有另外一个问题:+ H. L, b8 L" J- z- H# n9 T6 K/ O
为什么plottofile方法打出来的图纸会出现偏移?我在程序中直接给点的坐标,不需要用户自己去选择,也就是不能使用getpoint方法
# x( ~3 Y$ K6 y1 ^. \) T, Y4 [& L4 t) d" f0 Y! @9 j
不知道斑竹有没有遇到过这种问题?
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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