QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2571|回复: 5
收起左侧

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

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

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

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

x
在程序执行到下面代码时出现此问题:
) D& j' i: M. \1 V2 t6 ]' `5 d M1.Create pathmdi12; V: H4 v* e9 M
M2.Create pathmdi11
$ y. L1 F+ q; D1 }& `% f0 U+ e4 E: ~
提示如下:+ p# x- S$ N  X9 Q
untitled.JPG $ V: `5 @, `. l3 t, k

' U% C/ O) Q/ G& q- A但是在程序第一遍执行时可以正常运行,第二遍即出现此问题5 C, ~9 Y0 b4 N' s( H. r5 b

0 y2 J- G4 S6 }. ?! E5 j$ Z我的电脑上是office2003,不会出现此问题;但是一旦拿到装office2007的电脑就会出现这个问题* [9 v, @' ]0 N/ K1 h6 d+ {$ z
, E2 ]! b9 R! P6 n7 z
请问是怎么回事?如何解决?
+ @: {! C7 k7 J5 t, f; m; ?! k
& ], F! q! N( s+ y不知道斑竹woaishuijia是否遇到过此问题?或者其他朋友是否遇到过此问题?如果有解决方案,请不吝赐教,不胜感激
发表于 2009-11-12 17:07:57 | 显示全部楼层 来自: 中国
没用过office2007,猜想可能是 2007 版 Office Document Imaging 与 2003 版不同。建议到 MSDN 网站查看一下 office2007 的 VBA 参考。如果原因是这样的话,就需要在程序中加入识别版本并区别对待的内容。
$ _, u' E5 x  o" Q. G另外,引用的对象是否正确?% N0 x" c  p" ^; h
还有,M1、M2 、M3 这些变量用过之后,是否有用 M1.Close 和 Set M1 = Nothing 语句关闭进程?6 F6 l. Q+ T  Q' {. S7 F7 Y5 o; o
附件是《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,以前从 MSDN 下载的。

MSPAUTO.rar

339.97 KB, 下载次数: 3

 楼主| 发表于 2009-11-12 19:29:11 | 显示全部楼层 来自: 中国天津
谢谢斑竹6 L6 J0 A/ k9 K! g

% R: H$ z" E9 k引用的对象应该是正确的
, K( J2 w5 b7 w, F( `$ Q* j& I3 U' W8 t5 g- e* f  N" h! i
因为对象是在前一段程序中生成的,而且第一次运行时可以正确执行并输出期望的结果,但第二次就会出现偏移,plottofile方法输出的图形相对于图纸发生偏移,目前没有找到原因,第三次运行时会出现本贴所说的错误提示
' {7 V  W( d- K4 Q, h* Y' ]* `, }. k& R' t  l3 u
为了切断其他可能的联系,我重建了个按钮,输入如下程序:& h% Y1 [3 q# D$ P& i% g- r3 H' b
public aa as long
* K5 S- m; \5 \Private Sub CommandButton9_Click()9 d( ]+ w& G6 m" L. {
Dim M1 As MODI.Document, M2 As MODI.Document  '合并
/ ?. H: G  ^5 x8 Q1 u& xDim bb, path As String
- ^6 u% s- i; {) ]4 k3 l( e, G5 Kaa = aa + 100
4 C6 h: Y3 e0 i- N& c) n1 Z- i: Cbb = Str(aa)
! x( C4 U8 }4 Vpath = "d:\我的图纸\" & bb & ".mdi"
( ~; |0 _* K' G/ KSet M1 = New MODI.Document! N. u; o4 L4 d$ T0 s
    Set M2 = New MODI.Document9 ]* |. A8 {8 t2 u1 `) M
    M1.Create "d:\我的图纸\1111.mdi"
1 l$ F# d0 N6 f' z    M2.Create "d:\我的图纸\2222.mdi"
( ]4 l& i0 e2 q/ H( M    M1.Images.Add M2.Images(0), Nothing
  R$ b$ V7 F! C9 D. |# K    M1.SaveAs path
" _  }( f0 K  e2 F9 D    M1.Close5 _/ e6 Q3 v0 i* i# G4 O
    M2.Close6 C0 f8 J; U$ m8 S
End Sub
% I0 g+ k& C4 e* p8 r+ P# n- q% `* n此程序在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.gif
  j* Y* R9 B, C- P5 I/ [在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试

! f+ J* z# o8 T( U- r: k& s
) n7 b# {* P6 f! |0 I- x试过了,没用& o  n; n* m/ O/ @

8 ?9 b/ P/ w# l  E2 Y& l
. |, B  V; q5 X' n' u+ |测试发现:有时候程序会死在  M1.Create "d:\我的图纸\1111.mdi"  这一句,一直在这里运行,不再向下执行,但如果暂停然后再运行,则出现致命错误
. ?2 {1 j+ C5 k- m6 f
1 ~' e3 q) o1 k1 `$ d' h另外,我去MSDN网站看了一下,只有《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,没有适用于office2007的版本( m4 N7 o# U0 H: U3 V

) S8 L4 |, a$ \$ d' l' `[ 本帖最后由 157787698 于 2009-11-13 08:47 编辑 ]
 楼主| 发表于 2009-11-13 08:26:07 | 显示全部楼层 来自: 中国天津
还有另外一个问题:
3 V: E8 u6 g1 U# P; X. A. e7 ?为什么plottofile方法打出来的图纸会出现偏移?我在程序中直接给点的坐标,不需要用户自己去选择,也就是不能使用getpoint方法% z" h- ~7 I  s% d; C# g5 b
) @+ H, y$ v) l# t" o2 q) l) H8 }
不知道斑竹有没有遇到过这种问题?
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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