QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
在程序执行到下面代码时出现此问题:
6 ^9 I  c. S$ A M1.Create pathmdi120 Q( H, J1 x' A% Y
M2.Create pathmdi11
+ c8 P; T2 d' g' E: ]7 N1 G$ ^% {, e- _. M
提示如下:; s) u2 r- f; g$ q7 p
untitled.JPG ( b5 `+ R, Y  s. }  d9 q5 f) C

3 N+ R7 _, w) o3 Z' ^2 h2 O& F1 ^1 [但是在程序第一遍执行时可以正常运行,第二遍即出现此问题
0 D1 R5 Q* y: m% \
: c5 |5 j9 X4 E2 k2 n7 h( E7 h我的电脑上是office2003,不会出现此问题;但是一旦拿到装office2007的电脑就会出现这个问题
( t% l+ f% K: k, E5 E; s: R" {  S4 M; l! N$ ~
请问是怎么回事?如何解决?
, c8 i8 Y+ u% D6 \7 c: |0 Z
) e/ K0 C0 D2 u不知道斑竹woaishuijia是否遇到过此问题?或者其他朋友是否遇到过此问题?如果有解决方案,请不吝赐教,不胜感激
发表于 2009-11-12 17:07:57 | 显示全部楼层 来自: 中国
没用过office2007,猜想可能是 2007 版 Office Document Imaging 与 2003 版不同。建议到 MSDN 网站查看一下 office2007 的 VBA 参考。如果原因是这样的话,就需要在程序中加入识别版本并区别对待的内容。6 t2 S  ~& g7 M5 U& _& {/ v% {/ k
另外,引用的对象是否正确?
* w. A- ?: p: O还有,M1、M2 、M3 这些变量用过之后,是否有用 M1.Close 和 Set M1 = Nothing 语句关闭进程?+ Z" |( g& |% e& F1 j$ o
附件是《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,以前从 MSDN 下载的。

MSPAUTO.rar

339.97 KB, 下载次数: 3

 楼主| 发表于 2009-11-12 19:29:11 | 显示全部楼层 来自: 中国天津
谢谢斑竹
( y( m  h. H0 V, ^0 v" @3 k+ i4 p; E$ l7 h9 V2 z7 F6 ]
引用的对象应该是正确的* l/ `0 x8 J* D
& \! \7 P3 g) m8 R) n7 T/ ?
因为对象是在前一段程序中生成的,而且第一次运行时可以正确执行并输出期望的结果,但第二次就会出现偏移,plottofile方法输出的图形相对于图纸发生偏移,目前没有找到原因,第三次运行时会出现本贴所说的错误提示/ s" f3 z6 j. L" {, ^0 j" ^1 T

3 n8 s& W: A7 V; @2 ?" \. e! G为了切断其他可能的联系,我重建了个按钮,输入如下程序:7 O3 T2 Z5 z; A/ Q. G
public aa as long 0 h6 k+ U- e: B$ A: p! A, I" Z4 @
Private Sub CommandButton9_Click()
% c& m" T& ?! @0 J- iDim M1 As MODI.Document, M2 As MODI.Document  '合并0 Z' g) _: B) `9 k* m# d% \- V
Dim bb, path As String
7 i# Y- {0 `! C/ C* saa = aa + 100/ y; K/ Z- K5 X1 x, }! D
bb = Str(aa)
+ I1 n5 L4 ~9 k0 lpath = "d:\我的图纸\" & bb & ".mdi"+ d0 A$ y. u. D1 `- d5 P5 |) ]- {
Set M1 = New MODI.Document  z) t2 g" |% g6 Q/ B- {  [
    Set M2 = New MODI.Document
6 |  O  u7 t, e3 G    M1.Create "d:\我的图纸\1111.mdi"2 s1 U7 D8 O$ w2 W
    M2.Create "d:\我的图纸\2222.mdi"
( O, f) F0 r5 |0 S) H2 i. a    M1.Images.Add M2.Images(0), Nothing3 t$ c; q7 J+ x' ^5 |- Q! T1 c
    M1.SaveAs path, m! b4 v4 C: I  I0 p: i. G3 f3 j
    M1.Close
+ v5 }" j. j# ]( X! N. M    M2.Close  I  O2 F3 g5 d4 j! _( \
End Sub" Q/ v/ l. L2 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
/ f, ^9 [5 X- u5 @在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试

% o' \& g/ V$ m  o$ E; r; L. q9 c- o( t7 S) L; V4 @# P' B
试过了,没用9 z9 }; ^/ W4 I. \0 M  Q% P/ p

% ]" o  g8 u& e2 M8 y0 q! U7 K# _8 r' ~7 H! d, E/ Q. H; F
测试发现:有时候程序会死在  M1.Create "d:\我的图纸\1111.mdi"  这一句,一直在这里运行,不再向下执行,但如果暂停然后再运行,则出现致命错误8 }* P1 S9 F' `

3 X. L/ G1 D. Y) [5 L另外,我去MSDN网站看了一下,只有《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,没有适用于office2007的版本/ A5 ]- @. x8 A0 _* l8 Y3 \

1 e3 d8 s; i" s! t! {" U  _[ 本帖最后由 157787698 于 2009-11-13 08:47 编辑 ]
 楼主| 发表于 2009-11-13 08:26:07 | 显示全部楼层 来自: 中国天津
还有另外一个问题:! o" D8 I/ I7 H( l
为什么plottofile方法打出来的图纸会出现偏移?我在程序中直接给点的坐标,不需要用户自己去选择,也就是不能使用getpoint方法6 [( B3 k) U& C$ R6 ]
/ a" g! b. B, l4 ?7 F8 }/ g6 C$ H
不知道斑竹有没有遇到过这种问题?
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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