Board logo

標題: [發問] 請教一下,建立檔案問題~ [打印本頁]

作者: fusayloveme    時間: 2012-1-16 16:23     標題: 請教一下,建立檔案問題~

各位版上大大好,小弟我有幾個問題,假設我的Sheet1中的A1是"E004128",我該如何使用VBA,

讓我在另存新檔時,能夠讓存檔名稱顯示為E004128_目前時間(EX.E004128_1010116,明天的話就是E004128_1010117 )呢!?

先謝謝各位大大的回答~感恩!
作者: jackdream    時間: 2012-1-16 18:08

本帖最後由 jackdream 於 2012-1-16 18:17 編輯
存檔名稱顯示為E004128_目前時間(EX.E004128_1010116

參考看看~(預設儲存路徑為C:\ )
ActiveWorkbook.SaveAs Filename:="C:\" & [A1] & "_" & Format(Date, "yyyymmdd")

如果要改成民國年..
ActiveWorkbook.SaveAs Filename:="C:\" & [A1] & "_" & Format(Date, "emmdd")
作者: fusayloveme    時間: 2012-1-17 08:51

回復 2# jackdream

大大,不好意思~小弟比較愚昧,能否給比較完整的巨集設定,小弟自行嘗試了一下,檔案名稱是改成我要的沒錯喔,但好像無法自動存檔~^^"

先謝謝大大的熱心指導! 感恩^_^
作者: GBKEE    時間: 2012-1-17 09:28

回復 3# fusayloveme
ThisWorkbook   檔案關閉時的預設程序
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Me.SaveAs Filename:="C:\" & [A1] & "_" & Format(Date, "emmdd")
  3. End Sub
複製代碼

作者: fusayloveme    時間: 2012-1-17 11:21

回復 4# GBKEE

GB大大~我嘗試把您的代碼放進去~後面,但系統說必須要有一個End Sub,請問我該如何解決>< 我真的很新手...
  1. Sub Macro1()
  2. ChDir "C:\Users\hyc\Desktop" 是我用錄製巨集的方式~抓出來的
  3. ActiveWorkbook.SaveAs Filename:="C:\Users\hyc\Desktop" & [A1] & "_" & Format(Date, "emmdd")
  4. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  5.     Me.SaveAs Filename:="C:\Users\hyc\Desktop" & [A1] & "_" & Format(Date, "emmdd")
  6. End Sub
複製代碼

作者: register313    時間: 2012-1-17 11:36

回復 5# fusayloveme
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.   Me.SaveAs Filename:="C:\Users\hyc\Desktop" & [A1] & "_" & Format(Date, "emmdd")
  3. End Sub
複製代碼
GBKEE版主之程式碼是要放在ThisWorkbook
[attach]9239[/attach]

關閉檔案時會自動儲存
作者: fusayloveme    時間: 2012-1-17 12:00

回復 6# register313

喔喔~了解!~我剛剛嘗試了一下,依照您給的代碼放進去那個" thiswookbook",儲存出來的檔名格式會多出來"Desktop",請問該如何解決呢?

另外,其實我想問這個問題的最主要原因,是如果我從ACCESS抓資料下來到EXCEL,我要直接讓電腦...抓取資料、存取資料(儲存的格式就是像我講的那樣,A1_現在時間),

然後自動化,不曉得這樣有沒有辦法做到,並非是單一個EXCEL作業,然後儲存檔案(因為如果是這樣,自己輸入檔名,可能會快一些..)


先謝謝各位的解答~^_^
作者: GBKEE    時間: 2012-1-17 13:51

回復 7# fusayloveme
儲存出來的檔名格式會多出來"Desktop",請問該如何解決呢?      

是這樣嗎?   
Me.SaveAs Filename:="C:\Users\hyc\Desktop\" & [A1] & "_" & Format(Date, "emmdd")
作者: fusayloveme    時間: 2012-1-17 14:05

回復 8# GBKEE

感謝GBKEE大~已成功解決困擾~^^"

另外,其實我想問這個問題的最主要原因,就像我7樓所說的那樣,不曉得可否利用巨集做到呢?~謝謝
作者: GBKEE    時間: 2012-1-17 14:30

本帖最後由 GBKEE 於 2012-1-17 20:37 編輯

回復 9# fusayloveme
試試看
  1. Option Explicit
  2. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  3.     Dim E As Workbook, xPath As String
  4.     xPath = "C:\Users\hyc\Desktop\"
  5.     For Each E In Workbooks                       'Workbooks: 物件集合(活頁簿) 中依序處裡 E (活頁簿)
  6.         If E.Name <> ThisWorkbook.Name Then       '程式所在的活頁簿名稱<>處裡 E (活頁簿)的名稱
  7.             '不是程式碼所在的活頁簿
  8.             With E.Sheets(1)                      '活頁簿的第1個工作表
  9.                 E.SaveAs xPath & .[a1] & Format(Date, "emmdd")
  10.                 E.Close                           '活頁簿 關閉檔案
  11.             End With
  12.         End If
  13.     Next
  14. End Sub
複製代碼

作者: fusayloveme    時間: 2012-1-18 11:17

回復 10# GBKEE

太感謝大大回復!可惜的是小弟笨拙,不太清楚相關程式碼所代表的意思 ><,我努力嘗試看看~先謝謝大大您的解答~^^




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