woodygor 發表于 2025-7-4 09:51
) w8 B. m3 f" C! F! z' g+ @6 F1 q如果選中的零件已經打開工程圖 宏命令會報錯) z; P* s) V+ I: r. L% i0 k' j# m% m
& e0 ~( z) K; B4 i這個bug可以解決嗎 ( _% e. z/ K: p. S9 c, Z5 {7 b
問題出在 FileCopy olddrwname, newdrwname: z$ L) Z) F/ H; Q6 `& q" G6 A, D
Copy、CopyFile、FileCopy的用法+ F q$ g: Y4 t: h" _+ n8 J) h1 R
( q8 ?' a6 m$ @1、Copy 方法
0 _6 l; {, G4 c5 Q描述) u. M+ W+ a' j( M& h( T
把一個指定的文件或文件夾從一個地方復制到另一個地方。
/ `0 j* G8 J u5 A. y3 T+ h# I4 ]- n: P語法
- I. D6 h/ n& ~8 r+ G4 l) x% E1 p/ Cobject.Copy destination[, overwrite]4 Z' [1 V3 M9 L, [/ q
Copy 方法語法有如下幾部分:: ^8 F8 U' V& |2 v# j3 [
部分 描述9 a' f; q" t; H: D! C g8 t- k$ a# \) L
object 必需的。始終是一個 File 或 Folder 對象的名字。
+ n" f- u" U0 F" d! Qdestination 必需的。文件或文件夾要復制到的接受端。不允許有通配符。
0 U' ?( X3 `9 z4 U" Y, {overwrite 可選的。Boolean 值,如果該值為 True (缺省),則已存在的文件或文件夾將被覆蓋。如果為 False,則它們不被覆蓋。$ l0 R* C& o& W/ H6 v6 o3 l
說明9 x& n, j M/ S9 j: p
對一個 File 或 Folder,Copy 方法的結果和執行 FileSystemObject.CopyFile 或FileSystemObject.CopyFolder 操作的結果是一樣的,在后者中, object所引用的文件或文件夾是作為參數傳遞的。應當注意,后面的方法能夠復制多個文件或文件夾。 ============================================================================= 2、CopyFile 方法
/ c8 Q1 h8 g2 Z* h/ B描述
4 S0 ^) p& [- P( N( c把一個或多個文件從一個地方復制到另一個地方。5 i6 Z$ N0 R5 _
語法) A; j1 `' K: G! I% d" c' P
object.CopyFile source, destination[, overwrite]
+ d3 _: h' j* ^* u! R* [" `CopyFile 方法語法有如下幾部分:
N0 U' [! \0 ]# q; m: Q' v6 Y部分 描述
5 I5 Z) u, u8 N, Qobject 必需的。object始終是一個 FileSystemObject 的名字。5 R0 a/ ?" g p
source 必需的。指明一個或多個要被復制文件的字符串文件說明,它可以包括通配符。
u3 Z( s/ j" ~1 ]4 I5 qdestination 必需的。指明 source 中的一個或多個文件要被復制到的接受端的字符串,不允許有通配符。
4 T$ W1 W/ l9 h# X3 }8 n+ \: Hoverwrite 選項的。Boolean 值,它表示存在的文件是否被覆蓋。如果是 True,文件將被覆蓋;如果是 False,它們不被覆蓋。缺省值是 True。注意如果 destination 具有只讀屬性設置,不論 overwrite 值如何,CopyFile 都將失敗。3 S' W! J9 h, Q7 T9 V- ]
說明
( ?2 y4 p& X. V( K0 S通配符只能用在 source 參數的最后一個路徑部件。例如,你可以在下面請況使用通配符:# n8 w7 W9 I+ S& h+ N/ r( J& f* `
FileSystemObject.CopyFile “c:\mydocuments\letters*.doc”, “c:\tempfolder\”, S+ x5 o0 g& |9 w+ r( H: q: o
但下面情況不能使用:8 U: `% b( j+ c; Z
FileSystemObject.CopyFile “c:\mydocuments*\R1???97.xls”, “c:\tempfolder”
# p5 U* b- q6 d$ V% F) u如果 source 包含通配符或 destination 以路徑分隔符(\)為結尾,則認為 destination 是一個已存在文件夾,在其中復制相匹配的文件。否則認為 destination 是一個要創建文件的名字。不論是那種情況,當復制一個文件時,可能發生三種事件。/ u# a: H# `+ q: H
如果 destination 不存在,source 得到復制。這是通常的情況。
8 r' u6 D. S/ ?如果 destination 是一個已存在的文件,則當 overwrite 值為 False 時發生一個錯誤,否則,source的復制文件將試圖覆蓋已存在文件。
2 f$ d0 m; Z- e' M+ }( H8 s1 |) P- l6 \如果 destination 是一個目錄,發生一個錯誤。
0 \8 r7 K J0 C, d! n; a2 g如果使用通配符的 source 不能和任何文件匹配,同樣產生一個錯誤。CopyFile 方法停止在它遇到的第一個錯誤上。不要試圖回卷或撤消錯誤發生前所做的任何改變。 ============================================================================= 3、FileCopy 語句" ]/ R+ h* T5 {2 d
復制一個文件。% Z8 h- P; f# B X4 p& Z
語法
! s' W/ H2 v( [% j. ~1 |0 `, qFileCopy source, destination; ?! p, ^* A4 f/ F+ I0 M
FileCopy 語句的語法含有以下這些命名參數:7 }2 Q N; h) a2 J1 K% f8 I
部分 描述
( J C* q: ~7 d8 k. l6 M# @source 必要參數。字符串表達式,用來表示要被復制的文件名。source 可以包含目錄或文件夾、以及驅動器。
2 u: c9 o' m2 E) cdestination 必要參數。字符串表達式,用來指定要復制的目地文件名。destination 可以包含目錄或文件夾、以及驅動器。
5 \/ j2 M* y; R, z2 H: N. e" E說明
4 O/ _& J' V+ j3 r y0 G; Q如果想要對一個已打開的文件使用 FileCopy 語句,則會產生錯誤。
( A4 v" s' \2 `8 Q# r7 e F [' n! N ]# w1 d( [# _
|