標題:
[發問]
變更檔名
[打印本頁]
作者:
borshun88
時間:
2012-12-6 01:15
標題:
變更檔名
請問大大
1.如何(搜尋)開啟"D:\AA\"下的
最新日期
的Excel檔案(.xlsm),並變更檔名為Text.xlsm,
然後覆蓋儲存到"D"\BB\Text.xlsm(不要有提醒對話方塊,直接存檔)
2.然後將原"D:\AA\"所有檔案刪除
如上述 第2點刪除檔案參考論壇大大如下可以做到,但第1點不知道要如何寫,
請幫幫忙
Sub 巨集1()
Dim fs
If Dir("D:\AA\*") = "" Then: MsgBox "沒檔案": Exit Sub
Set fs = CreateObject("scripting.filesystemobject")
fs.DeleteFile "D:\AA\*"
MsgBox "Done"
End Sub
作者:
Hsieh
時間:
2012-12-6 10:31
回復
1#
borshun88
日期檔案名稱的命名規則為何?
作者:
GBKEE
時間:
2012-12-6 11:43
回復
1#
borshun88
DateLastModified 屬性 傳回最後一次修改指定檔案或資料夾的日期和時間。唯讀。
幫你找到最新有修改的檔案,剩下的請自己完成
Option Explicit
Sub 巨集1()
Dim f As Object, FileDate(), FileName(), S As Variant
If Dir("D:\AA\*.xlsm") = "" Then: MsgBox "沒檔案": Exit Sub
For Each f In CreateObject("scripting.filesystemobject").GetFolder("d:\AA").Files
If InStr(f, ".xlsm") Then
ReDim Preserve FileName(S)
ReDim Preserve FileDate(S)
FileName(S) = f
FileDate(S) = CDbl(f.DateLastModified)
S = S + 1
End If
Next
If S > 0 Then
S = Application.Match(Application.Max(FileDate), FileDate, 0) - 1
MsgBox FileName(S)
End If
'fs.DeleteFile "D:\AA\*"
'MsgBox "Done"
End Sub
複製代碼
作者:
borshun88
時間:
2012-12-6 23:12
回復
3#
GBKEE
Dear GBKEE
大大提供程式可行,也完全match我想要達到的需求,太感恩了
但小弟涉略不深對這些程式有些難以消化,可否詳細說明
If S > 0 Then
S = Application.Match(Application.Max(FileDate), FileDate, 0) - 1
''''''這句就無法連結起來,尤其是為何要-1??
懇請大大在指導一下
作者:
GBKEE
時間:
2012-12-7 07:22
本帖最後由 GBKEE 於 2012-12-7 07:27 編輯
回復
4#
borshun88
Array 函數所建立的陣列
預設下限必為零
Match 函數 如有傳回數字
必為1開始
VBA的說明
Option Base 陳述式
在模組層次中用來宣告陣列索引的預設下限。
語法
Option Base {0 | 1}
請注意
若預設的下限值為 0,則 Option Base 陳述式是不需要的。若需要使用時,此陳述式必須出現在模組中,並且在任何程序之前。Option Base 僅能在模組�堨X現一次,而且必須在含有維數的陣列宣告之前。
附註 在 Dim、Private、Public、ReDim 和 Static 陳述式中,To 子句提供較具彈性的方法,來控制陣列索引的範圍。然而,如果不使用 To 子句來明確的設定下限,則可用 Option Base 來改變預設值的下限為 1。Array 函數所建立的陣列預設下限必為零,不受 Option Base 所影響。
複製代碼
如果有 Option Base 1
那 S 就不須減 1
作者:
borshun88
時間:
2012-12-7 20:08
回復
5#
GBKEE
解釋非常詳盡,對陣列又有多一層的認識
感下大大
回復
2#
Hsieh
也感謝Hsieh 大大的關心回覆
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)