返回列表 上一主題 發帖

[發問] 存檔時,自動加入存檔時的日期

[發問] 存檔時,自動加入存檔時的日期

請教各位高手
之前小弟在舊論壇找到一篇資料
http://gb.twbts.com/index.php?topic=660.msg2935#msg2935
  1. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  2. Cancel = True
  3. Me.Save
  4. Me.SaveCopyAs Me.Path & "\" Replace(Me.Name,".xls",Format(Date,"emmdd") & ".xls")
  5. End Sub
複製代碼
但是現在不能用了
出現必須是陳述結尾的錯誤
請問是replace的用法有改嗎?

小弟是用2007版

本帖最後由 Hsieh 於 2011-11-3 14:59 編輯

回復 1# downling
少了一個&
Me.SaveCopyAs Me.Path & "\" & Replace(Me.Name, ".xls", Format(Date, "emmdd") & ".xls")

用FULLNAME會清楚點
Me.SaveCopyAs Replace(Me.FullName, ".xls", Format(Date, "emmdd") & ".xls")
學海無涯_不恥下問

TOP

感謝Hsieh版大
可以用了

TOP

回復 2# Hsieh

我想再問一下
之前的vba必需為一帶巨集的xlsm檔才能使用

若是用一般的xls檔的vba要如何寫呢?

TOP

回復 4# downling
那只是版本問題
這語法2003版適用
學海無涯_不恥下問

TOP

回復 5# Hsieh

Hsieh 版大您誤會了

上面的程式2007是可以使用的
但是檔案必需為一個帶巨集的檔案也就是副檔名為xlsm

現在小弟因工作的需要,必需常常更新不同的檔案,由於是不同人所給的,
所以想要做成一通用的巨集或VBA
讓無巨集的檔案(也就是一般的XLS檔)也能方便的加上日期

小弟有在網路上找到類似的
但是路徑是設好的
想說要怎麼修改成原來的檔案所在的資料夾
  1. Sub TD()
  2.   mypath = "C:\Documents and Settings\Administrator\桌面\"
  3.   myfile = "NN" & Format(Date, "emmdd") & ".xls"
  4.   Sheets(Array("Sheet2", "Sheet3")).Copy
  5.   ActiveWorkbook.SaveAs mypath & myfile
  6.   Workbooks(myfile).Close
  7. End Sub
複製代碼

TOP

回復 6# downling


    mypath = ThisWorkbook.Path & "\"
學海無涯_不恥下問

TOP

剛又修改了一下
現在vba會把"你的檔名.xlsx"另存新檔為"你的檔名_yyyymmdd.xlsx"
請指教
  1. Sub TD()

  2.    myname = Application.ActiveWorkbook.FullName
  3.    Application.DisplayAlerts = False
  4.    ActiveWorkbook.SaveCopyAs Replace(myname, ".xls", "_" & Format(Date, "yyyymmdd") & ".xls")
  5.    Application.DisplayAlerts = True
  6.    
  7. End Sub
複製代碼

TOP

回復 8# downling

那你要的需求必須說明清楚阿
這只不過是字串替換問題
你的最終檔名字串要得到怎樣呢?
學海無涯_不恥下問

TOP

回復 9# Hsieh

不好意思
讓您誤會了

小弟需要的是拿到檔案後
使用vba去修改檔名(加上或修改成今天日期)後另存新檔
ex:aaa.xlsx ---> aaa_20111110.xlsx or bbb_20111005.xlsx ---> bbb_20111110.xlsx

上面的程式應該只適用於沒有日期的檔名.....

至於上上面那個程式則是拿來參用一下他的思法而已囧

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題