QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
在程序执行到下面代码时出现此问题:
* n, z- l* l3 r% }2 S M1.Create pathmdi12# c- ]! Y1 t5 [$ ^0 G
M2.Create pathmdi11
1 z1 K1 a4 ~* Q9 O. w* b: l1 ?8 }+ P3 D' e  q4 ]) @# g
提示如下:; Y5 c, N8 h# ]- ^# l$ }4 @
untitled.JPG
7 z: _" v) j6 E, S, ~* E- y/ u% |2 u1 M8 _( ?, U; q+ O# ^
但是在程序第一遍执行时可以正常运行,第二遍即出现此问题! o8 `! F6 z; X
. N, E6 V* [/ k7 f/ `; s
我的电脑上是office2003,不会出现此问题;但是一旦拿到装office2007的电脑就会出现这个问题
6 |2 z, V! q( @5 I) ?2 S3 T7 {9 |  s) R8 H7 \# D9 Y
请问是怎么回事?如何解决?. F, W! q& k1 _
( I! H, n$ I5 K0 k
不知道斑竹woaishuijia是否遇到过此问题?或者其他朋友是否遇到过此问题?如果有解决方案,请不吝赐教,不胜感激
发表于 2009-11-12 17:07:57 | 显示全部楼层 来自: 中国
没用过office2007,猜想可能是 2007 版 Office Document Imaging 与 2003 版不同。建议到 MSDN 网站查看一下 office2007 的 VBA 参考。如果原因是这样的话,就需要在程序中加入识别版本并区别对待的内容。$ w# F* |5 y2 e- F4 M2 ]" U
另外,引用的对象是否正确?* E0 M7 K! A; J' p/ z8 C, [
还有,M1、M2 、M3 这些变量用过之后,是否有用 M1.Close 和 Set M1 = Nothing 语句关闭进程?
- k! H; o) M* R+ `/ \附件是《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,以前从 MSDN 下载的。

MSPAUTO.rar

339.97 KB, 下载次数: 4

 楼主| 发表于 2009-11-12 19:29:11 | 显示全部楼层 来自: 中国天津
谢谢斑竹! `) P& j3 l& A! l5 h, z4 D

) n$ i( W7 _9 T8 W9 [9 i! L/ q引用的对象应该是正确的
0 H. N% K5 I! ?# T! o/ S5 ^5 w4 f# p+ ~2 x; m
因为对象是在前一段程序中生成的,而且第一次运行时可以正确执行并输出期望的结果,但第二次就会出现偏移,plottofile方法输出的图形相对于图纸发生偏移,目前没有找到原因,第三次运行时会出现本贴所说的错误提示
/ }$ j6 W" m3 }2 t2 J5 Q
( e5 B5 y& Z  l/ p, j: l2 h+ @' N9 f为了切断其他可能的联系,我重建了个按钮,输入如下程序:( [: o0 t$ c0 i  Q3 F/ p
public aa as long 3 q# \% k; ~0 P1 [
Private Sub CommandButton9_Click()* `& V# J* i2 t
Dim M1 As MODI.Document, M2 As MODI.Document  '合并- K& J  ]. m4 }
Dim bb, path As String
* ~9 I$ a  u( c  Paa = aa + 1000 k6 K" v8 P6 x; J
bb = Str(aa); m4 `- O& a* r9 I. o
path = "d:\我的图纸\" & bb & ".mdi"
6 F6 F7 g7 S3 F$ s" ?" i% xSet M1 = New MODI.Document5 t7 i' _2 G8 p0 [" {
    Set M2 = New MODI.Document
1 K8 d: N5 r! c$ ]    M1.Create "d:\我的图纸\1111.mdi"- \8 \+ V( C. F, s+ b
    M2.Create "d:\我的图纸\2222.mdi"
& p- Y2 P/ p7 W. f$ q! Q    M1.Images.Add M2.Images(0), Nothing/ q  W. ^. }2 p. v
    M1.SaveAs path9 J" B# y" X/ h3 A+ A8 R( Q  v
    M1.Close: z2 K, @. G) }9 f7 H
    M2.Close
. ?+ J: A' G3 w8 rEnd Sub' x" p+ e: m3 q8 A- ^: i1 I9 m
此程序在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
5 q' Z' {9 U# J6 M在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试

  ]: O" \& y, w( g( O& x& U+ [6 N' c3 l- }7 L8 ~
试过了,没用1 l8 z5 i: k' k3 |

' O: x9 s" I% i# O& k" V" K
5 {0 E- n* \" y- f# y* n测试发现:有时候程序会死在  M1.Create "d:\我的图纸\1111.mdi"  这一句,一直在这里运行,不再向下执行,但如果暂停然后再运行,则出现致命错误
! G1 O2 Q/ t) `7 [+ k2 r5 t, R2 m1 j1 D( F. J6 B" l0 K; A2 c
另外,我去MSDN网站看了一下,只有《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,没有适用于office2007的版本
5 D& W+ g0 R4 D: `$ n! h
3 ^6 |, E) M7 o2 m* D0 s4 p[ 本帖最后由 157787698 于 2009-11-13 08:47 编辑 ]
 楼主| 发表于 2009-11-13 08:26:07 | 显示全部楼层 来自: 中国天津
还有另外一个问题:7 O6 |3 T5 a; Z& q( J$ H$ s
为什么plottofile方法打出来的图纸会出现偏移?我在程序中直接给点的坐标,不需要用户自己去选择,也就是不能使用getpoint方法
. w4 H; X, ], P6 M6 x4 Y# d8 E
$ i' }0 W6 Y6 U" U, B1 n5 I) e. r不知道斑竹有没有遇到过这种问题?
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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