QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
在程序执行到下面代码时出现此问题:
2 E5 R, }) O9 B M1.Create pathmdi12
& R& k; t! t& |, F( Q# j& A' LM2.Create pathmdi11
: w; T" w; g  }: {& [* O6 O- M2 P+ s, S" W' ~" ^9 K% |: p
提示如下:7 {' k5 r. W$ j
untitled.JPG : f$ E/ C5 x8 M0 {5 I, O
& ]5 b7 K7 L- ]1 z
但是在程序第一遍执行时可以正常运行,第二遍即出现此问题* `; z) T  v# a% i. T
0 \$ q! u8 y* z; x3 I
我的电脑上是office2003,不会出现此问题;但是一旦拿到装office2007的电脑就会出现这个问题
  s" Z/ `& q& m9 p# x; \$ |6 t5 S* C, e
请问是怎么回事?如何解决?
5 M# l" `$ M9 L% e6 U
! M1 x& H) ?" w8 @: f不知道斑竹woaishuijia是否遇到过此问题?或者其他朋友是否遇到过此问题?如果有解决方案,请不吝赐教,不胜感激
发表于 2009-11-12 17:07:57 | 显示全部楼层 来自: 中国
没用过office2007,猜想可能是 2007 版 Office Document Imaging 与 2003 版不同。建议到 MSDN 网站查看一下 office2007 的 VBA 参考。如果原因是这样的话,就需要在程序中加入识别版本并区别对待的内容。
+ T/ Z7 Q) `/ f7 O3 b- t另外,引用的对象是否正确?3 @0 P, M9 N8 f/ F
还有,M1、M2 、M3 这些变量用过之后,是否有用 M1.Close 和 Set M1 = Nothing 语句关闭进程?' T7 r$ A9 A5 C: W, P
附件是《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,以前从 MSDN 下载的。

MSPAUTO.rar

339.97 KB, 下载次数: 3

 楼主| 发表于 2009-11-12 19:29:11 | 显示全部楼层 来自: 中国天津
谢谢斑竹
! Q4 g: s1 L; d8 B8 Q+ B- h6 ]' v8 E" L# k: g! B
引用的对象应该是正确的' n0 h; G4 {% f7 _# c# `
+ ?, i8 x9 c' X/ J7 R( }4 P
因为对象是在前一段程序中生成的,而且第一次运行时可以正确执行并输出期望的结果,但第二次就会出现偏移,plottofile方法输出的图形相对于图纸发生偏移,目前没有找到原因,第三次运行时会出现本贴所说的错误提示; l) I1 i  @& D  c$ E# X! P

/ f6 Z7 r5 L& @- K6 ]3 j为了切断其他可能的联系,我重建了个按钮,输入如下程序:
; T5 c1 t) c" R* A4 _public aa as long 8 j6 M. q- b1 _3 Y3 G* {  D/ U
Private Sub CommandButton9_Click()
* _0 p. u3 s  }Dim M1 As MODI.Document, M2 As MODI.Document  '合并
1 N; H% m0 p" F% O" mDim bb, path As String/ y/ ^% k6 k+ d; r4 G" `, C
aa = aa + 100' G) [/ R+ t+ T3 N! k( Q
bb = Str(aa)
2 e- l% ?, J( w  _0 d4 upath = "d:\我的图纸\" & bb & ".mdi"
: K- U& b9 }  C7 SSet M1 = New MODI.Document
6 u: x" v% c1 Q6 d5 c% F' @6 Q, t    Set M2 = New MODI.Document
) q9 h0 w* _* }7 Y! h" o0 c    M1.Create "d:\我的图纸\1111.mdi"+ h" K4 @. h" g+ c! M+ ~
    M2.Create "d:\我的图纸\2222.mdi"
0 h0 v. Y2 w6 b- o    M1.Images.Add M2.Images(0), Nothing( i  o2 U' Q  i5 K8 m% P
    M1.SaveAs path
( v9 \" d  Y* C. D7 M    M1.Close
, _2 S  {, ]. f" E    M2.Close
: S( [  C" J0 u4 \& }: pEnd Sub
$ ~2 }/ p, ^1 b/ P- c此程序在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.gif9 i" m9 B. T7 `! S/ G$ }
在 End Sub 前面加上 Set M1 = Nothing 和 Set M2 = Nothing 试试
6 q8 {2 @' |$ D2 P  @0 y: A
6 W( D& b  D! Q9 J
试过了,没用0 ^3 m; k& U5 u9 j% z3 p
$ n& p- y- I% U5 U$ p
& \/ C2 m# W# o- X
测试发现:有时候程序会死在  M1.Create "d:\我的图纸\1111.mdi"  这一句,一直在这里运行,不再向下执行,但如果暂停然后再运行,则出现致命错误
- e* X5 X$ D. ~2 Y* A& i6 W/ Y1 k* w2 y) }
另外,我去MSDN网站看了一下,只有《Microsoft Office 2003 Edition Document Imaging VBA Language Reference》,没有适用于office2007的版本# z- q: J/ W  a# E$ g- D. A% a0 v
. [6 y/ I, j% i" U; Q
[ 本帖最后由 157787698 于 2009-11-13 08:47 编辑 ]
 楼主| 发表于 2009-11-13 08:26:07 | 显示全部楼层 来自: 中国天津
还有另外一个问题:7 b5 ?5 K5 ]  f; |: G
为什么plottofile方法打出来的图纸会出现偏移?我在程序中直接给点的坐标,不需要用户自己去选择,也就是不能使用getpoint方法, R# @; v2 j; Y: o6 O9 n% v, X

% P3 ?6 C# M3 j不知道斑竹有没有遇到过这种问题?
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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