Board logo

標題: [發問] 請問1些搬移的問題 [打印本頁]

作者: mark15jill    時間: 2011-5-13 09:14     標題: 請問1些搬移的問題

本帖最後由 mark15jill 於 2011-5-18 09:30 編輯

因資料太多 如果一筆一筆慢慢搬移 會手廢掉= =!!
故做了一個比對表 和一個按鈕 想請問說 能否弄個VBA 將想要的資料 搬移到想要的資料夾名稱...

需求簡易說明
1.壓縮檔內有  需求說明文件  比對表  EXCEL存放區 和 資料夾存放區 兩個資料夾
    而在 EXCEL存放區內 有13份EXCEL檔案   資料夾存放區內 有 13個資料夾

2.想請問說 能否在比對表內 的 搬移 按鈕按下時候
    依照 比對表內的 TEXTbox 內容 將 EXCEL存放區內的檔案 放置該目錄下的 資料夾名稱
    如  TEXTBOX內容為 (D:\90年度\) 按下搬移後  EXCEL檔案 (90年度-001 ) 會搬移到 D:\90年度\90年度-001-王1 的資料夾內


檔案附帶於此   (479K才是正確的ˇˇ  另外一個是誤傳)
[attach]6158[/attach]
作者: mark15jill    時間: 2011-5-16 13:42

回復 1# mark15jill


    +.+  是我表達不夠清楚嗎
作者: GBKEE    時間: 2011-5-16 14:49

回復 2# mark15jill
Name陳述句重新命名檔案並將之移到一個不同的目錄或資料夾中。如有必要,Name可跨越磁碟機移動檔案。但當newpathname和oldpathnamebut都在相同的磁碟機中時,只能重新命名已經存在的目錄或資料夾。Name不能建立新檔案,目錄或資料夾。
使用 Name 指令在一個已開啟的檔案上,將會產生錯誤,想要改變一個已開啟檔案的名稱之前,你必須先關閉它,Name 引數不能包括萬用字元 ( * 和 ? )。
  1. Sub Ex()
  2.     Dim TheFile$, A$, F$
  3.     For Each e In Range("G2", [G2].End(xlDown))
  4.         TheFile = ThisWorkbook.Path & "\" & "excel存放區\" & e & ".xls"
  5.         A = Dir(TheFile)
  6.         If A <> "" Then
  7.             F = ThisWorkbook.Path & "\" & "資料夾存放區\" & e(1, 2)
  8.             Name TheFile As F & "\" & A
  9.         End If
  10.     Next
  11. End Sub
複製代碼

作者: mark15jill    時間: 2011-5-16 15:10

回復 3# GBKEE


    版大  那些程式的話 是只能限定於 同磁碟嗎??(如 C 對 C )
還是說 可以不同磁碟區???
因為如果是同磁碟區可行的話 那就不用把比對表搬移過去
如果不可行的話 那就得搬移過去了
作者: GBKEE    時間: 2011-5-16 15:39

回復 4# mark15jill
因為如果是同磁碟區可行的話 那就不用把比對表搬移過去,如果不可行的話 那就得搬移過去了
看不懂你的意思
Name   "D:\TEST.XLS"  As   "C:\TEST1.XLS"   
是可行的
作者: mark15jill    時間: 2011-5-16 17:03

回復 5# GBKEE


    就是那個意思....  謝謝板大
因為常常為了要搬移上千個檔案  而導致眼花撩亂= =!! 手極度痠痛
作者: mark15jill    時間: 2011-5-18 09:43

本帖最後由 mark15jill 於 2011-5-18 10:41 編輯

回復 5# GBKEE


  大大 不好意思 有點小問題ˇˇ!!!
如果碰到非連續的資料
如 (號碼1 3 4 7 8 9 10 11 15 19 20 ) 類似這樣


就會沒有動靜
作者: GBKEE    時間: 2011-5-18 11:22

回復 7# mark15jill
  1. Sub Ex()
  2.     Dim E As Range, TheFile$, A$, F$
  3.     For Each E In Range("G2", Cells(Rows.Count, "G").End(xlUp))
  4.         If E <> "" Then
  5.             TheFile = ThisWorkbook.Path & "\" & "excel存放區\" & E & ".xls"
  6.             A = Dir(TheFile)
  7.             If A <> "" Then
  8.                 F = ThisWorkbook.Path & "\" & "資料夾存放區\" & E(1, 2)
  9.                 Name TheFile As F & "\" & A
  10.             End If
  11.         End If
  12.     Next
  13. End Sub
複製代碼

作者: mark15jill    時間: 2011-5-18 11:47

本帖最後由 mark15jill 於 2011-5-18 11:55 編輯

回復 8# GBKEE
目前 我的方式 是

123
-比對表
-excel存放區(G攔的資料) <有187筆>
        89年度-002
      89年度-004
      89年度-027
-資料夾存放區(H欄位資料) <有187筆>
      89年度-002-王1
     89年度-004-王4
     89年度-027-王27

但是  跑到這行的時候 會出現 以下圖片訊息
    Name TheFile As F & "\" & A



[attach]6249[/attach]
作者: GBKEE    時間: 2011-5-18 14:59

回復 9# mark15jill
請查看 vba的說明  錯誤的檔案名稱或數目 (錯誤 52)
檢查 看看你有犯到那裡的錯誤
作者: mark15jill    時間: 2011-5-18 15:45

回復 10# GBKEE
看了= =!!
看不懂...
是檔名路徑太過長嗎??
還是???



錯誤的檔案名稱或數目 (錯誤 52)
請參閱     特性

此錯誤發生在存取某檔案時。此錯誤有以下的起因和解決方法:

陳述式引用到如下的檔案代碼或檔案名稱:
在 Open 陳述式中沒有提到或雖有提到但已經關閉。
在 Open 陳述式中提到此檔名。注意如果您呼叫 Close 陳述式時沒有用適當的引數,可能會不小心關閉目前所有開啟的檔案和檔案號碼。

超出檔案號碼範圍 (1 - 511)。
如果您的程式碼中會產生檔案號碼的話,請確定產生的檔案號碼是否正確。

不正確的檔名或檔案號碼。
檔案名稱必須遵循作業系統規格。在 Microsoft Windows,可使用以下的規格:

檔案或目錄名稱可以有兩部份:檔名和選擇性副檔名。兩部份以句點隔開,例如,myfile.new。


檔名可達 255 字元。


檔名必須以字母或數字做為開頭。它可以包含大小寫字元 (檔案名稱不分大小寫),但以下的字元除外:雙引號 (")、標點 (')、斜號 (/)、反斜號 (\)、冒號 (:)、垂直號 (|)。


檔名可以包含空白。


以下的名稱將保留且不能用在檔案或目錄上:CON、AUX、COM1、COM2、COM3、COM4、LPT1、LPT2、LPT3、PRN、NUL。例如,如果您要在 Open 陳述式中將檔名設為 PRN 的話,那麼 Print # 和 Write # 陳述式的預設印表機將會指向 Open 陳述式中的檔案號碼。


以下是正確的 Microsoft Windows 檔案名稱;
    LETTER.DOC
    My Memo.Txt
    BUDGET.92
    12345678.901
    Second Try.Rpt

在 Macintosh 上,檔案名稱可以包含任何的字元,除了冒號 (:) 以外,而且也可有空白,不過 Null 字元 (Chr(0)) 在任何檔案名稱上是不允許的。
詳細資訊,可選取有疑問的項目並按下 F1 (在Windows中) 或 HELP (在Macintosh上)。
作者: GBKEE    時間: 2011-5-18 19:03

本帖最後由 GBKEE 於 2011-5-18 20:32 編輯

回復 11# mark15jill
你有看沒有懂!
沒有你的檔案及目錄 我也無法度.
請如1樓附檔般,再將有錯誤的檔案附上來.
作者: mark15jill    時間: 2011-5-19 08:22

本帖最後由 mark15jill 於 2011-5-19 08:23 編輯

回復 12# GBKEE


        不好意思  我資質愚鈍= =!!
檔案已經附上 因為內容牽扯壹些機密 所以 把內容刪除了

目的 目前只希望 是否能夠將該相同的大目錄內的 EXCEL存放區所有檔案 搬移到 資料夾存放區 內的 個別資料夾內

[attach]6264[/attach]
作者: GBKEE    時間: 2011-5-19 10:46

回復 13# mark15jill
抱歉,根據附檔 找不到錯誤.
作者: mark15jill    時間: 2011-5-19 13:43

回復 14# GBKEE

我所謂的錯誤有2
1.就是上面的那種情形和圖
2.沒辦法搬移到個別資料夾
作者: GBKEE    時間: 2011-5-19 14:16

回復 15# mark15jill
我所謂的錯誤有2
1.就是上面的那種情形和圖
2.沒辦法搬移到個別資料夾

不是 錯誤的檔案名稱或數目 (錯誤 52) 嗎?
已依據你上傳檔案 測試沒有發生啊!
作者: mark15jill    時間: 2011-5-19 14:41

回復 16# GBKEE


    ˇˇ 那就是我納悶的地方
因為 如果沒出現那個訊息  也只會把檔案搬到該根目錄 並不會搬移到個別資料夾內..
但是 如果出現那個訊息 是連動都不會動= =!!!!
所以 我才一直請教您 是什麼情形..
作者: GBKEE    時間: 2011-5-19 14:52

回復 17# mark15jill
再測試一次了,還是沒有錯誤!
檔案都搬到指定的資料夾.
作者: mark15jill    時間: 2011-5-19 15:48

回復 18# GBKEE

那我再試驗看看 謝謝您




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)