另存新檔問題(頁1) - Excel程式區- 麻辣家族討論版版
文章推薦指數: 80 %
另存新檔問題. 使用ActiveWorkbook.SaveAs Filename:=newfilename 另存新檔時若檔案已存在, 會出現警告視窗, 是否取代現有檔案當選擇不取代現有檔案, ...
麻辣家族討論版版'sArchiver
麻辣家族討論版版»Excel程式區»另存新檔問題
enoch發表於2012-6-2715:12
另存新檔問題使用ActiveWorkbook.SaveAsFilename:=newfilename另存新檔時
若檔案已存在,會出現警告視窗,是否取代現有檔案
當選擇不取代現有檔案,即出現錯誤
請問應如何修改程式,可選擇取消不儲存,或更改檔案名稱另存新檔
另外,若想直接取代舊檔案, 不顯示警告,又應該如何
請指教kimbal發表於2012-6-2813:34
[i=s]本帖最後由kimbal於2012-6-2813:39編輯[/i]
找出檔案是不是已經存在,存在的話,把檔名加上時間存起來.(例如c:\abc20120628133801.xls)[code]
DimstrExistAsString
dimstrFolderasstring
dimstrFilenameasstring
strFolder="c:\"
strFilename="abc"
strExist=Dir(strFolder&strFilename&".xls")
IfstrExist=""Then
ActiveWorkbook.SaveAsFilename:=strFolder&newfilename&".xls"
else
ActiveWorkbook.SaveAsFilename:=strFolder&newfilename&format(now(),"yyyymmddhhmmss")&".xls"
EndIf[/code]直接取代(把提示停掉)[code]application.displayalerts=false
ActiveWorkbook.SaveAsFilename:=newfilename
application.displayalerts=true[/code]enoch發表於2012-6-2815:57
[i=s]本帖最後由enoch於2012-6-2816:20編輯[/i]
謝謝kimbal指教,我試到另外方法,想分享一下
OnErrorResumeNext
ActiveWorkbook.SaveAsFilename:="book1"
IfErr<>0Then'取消另存新檔時顯示
Application.Dialogs(xlDialogSaveAs).ShowGBKEE發表於2012-6-2816:42
[b]回復[url=http://forum.twbts.com/redirect.php?goto=findpost&pid=40238&ptid=6992]3#[/url][i]enoch[/i][/b]
OnErrorResumeNext 除非確定錯誤點可忽略,否則不輕易使用[code]OptionExplicit
SubEx()
DimxlMsgAsString,NewfilenameAsString,xlSaveAsInteger
Newfilename="D:\TEST.XLS"
xlMsg=IIf(Dir(Newfilename)<>"","覆蓋檔案","儲存檔案")
xlSave=MsgBox(Newfilename&Chr(10)&xlMsg&":是(Y),另存檔案:否(N),不存檔案:取消",vbYesNoCancel)
'xlSave傳回vbYes,vbNo,vbCancel三選一
Application.DisplayAlerts=False
IfxlSave=vbYesThen
ActiveWorkbook.SaveAsFilename:=Newfilename
ElseIfxlSave=vbNoThen
WithApplication.FileDialog(msoFileDialogSaveAs)
.InitialFileName=Newfilename
If.Show=-1ThenActiveWorkbook.SaveAsFilename:=.SelectedItems(1)
EndWith
EndIf
Application.DisplayAlerts=True
EndSub
[/code]enoch發表於2012-6-2910:35
[i=s]本帖最後由enoch於2012-6-2912:46編輯[/i]
多謝GBKEE,真的教了我很多
Application.FileDialog比Application.Dialogs
更加好用,可以加上引數,預先設定檔案名稱等資料
因為有時想不到其它方法, 才會用
OnErrorResumeNext
若用完之後即時加上
Onerrorgoto0 可以嗎
試完程過,但有少少問題想再請教
如何控制是OFFICE03".XLS"檔案呢?
因為程式可能在不同EXCEL版本中使用
雖然明稱是TEST.XLS,但檔案類型都可能轉了其它版本GBKEE發表於2012-6-2912:49
[b]回復[url=http://forum.twbts.com/redirect.php?goto=findpost&pid=40279&ptid=6992]5#[/url][i]enoch[/i][/b]
程式上是可以如此的enoch發表於2012-6-2914:37
但試過若執行程式前,更改過儲存檔案的類型,
例如之前執行過檔案>>另存新檔>>選擇存檔類型為".CSV"
執行程式時就算檔案後面是".XLS"尾,都會更改了".CSV"sillykin發表於2016-2-2500:49
[b]回復[url=http://forum.twbts.com/redirect.php?goto=findpost&pid=40241&ptid=6992]4#[/url][i]GBKEE[/i][/b]
不好意思能請問
A是原檔案,在這A檔案中執行『另存新檔』,產生B檔案..以此類推..
要問的問題是:在A檔案另存新檔後(產生2檔案),能停留在A檔案嗎?(因每次『另存新檔』後,工作均停留在每次產生新檔案)要如何停留在A的原檔案呢??GBKEE發表於2016-2-2506:21
[b]回復[url=http://forum.twbts.com/redirect.php?goto=findpost&pid=87276&ptid=6992]8#[/url][i]sillykin[/i][/b][code]SaveCopyAs方法 將指定活頁簿的備份儲存到檔案,但不變更記憶體中已開啟的活頁簿。
[/code][code]SubEx()
WithThisWorkbook
.SaveCopyAs.Path&"\test.xls" '
EndWith
EndSub
[/code]sillykin發表於2016-7-321:01
DimxPathAsString
DimArrAsVariant
Arr=Array("申請書","契約書")
Sheets(Arr).Copy
ActiveWorkbook.SaveCopyAsFilename:=_
"C:\"&TextBox1&"("&(Year(Date)&Month(Date))&Day(Date)&")"&"("&TextBox2&")"&".xlsm"
ActiveWorkbook.Close
UnloadMe
想請問為何執行上述程式,為另存二個sheet,並存為一個新檔,但會多出一個新的檔案,小弟是否有地方用錯呢????
頁:
[1]
查看完整版本:另存新檔問題
麻辣家族討論版版為麻辣學園網站成員
由昱得資訊工作室©Since1993所提供
延伸文章資訊
- 1檔案類別的認識
*.XLS. 活頁簿檔案,也是Excel預設的存檔類型 ; *.HTM *.HTML. Web畫面 ; *.XLT. 範本檔,供大家共同使用,始資料樣式能一致 ; *.XLA. "增益集"檔案 ...
- 2[另存新檔] 位於何處?
[另存新檔] 位於何處? · 點選[檔案] >儲存一份複本。 · 選擇您要儲存檔案的位置。 · 輸入檔案名稱,然後點選[儲存複本]。
- 3另存新檔問題(頁1) - Excel程式區- 麻辣家族討論版版
另存新檔問題. 使用ActiveWorkbook.SaveAs Filename:=newfilename 另存新檔時若檔案已存在, 會出現警告視窗, 是否取代現有檔案當選擇不取代現有檔案, ...
- 4Excel2003檔案編修後,無法另存新檔,卻可以原檔名儲存!!
所有的提問皆不符合,還是不能另存新檔,但是原檔名存檔卻OK,我把My Document指向到E:,有差異嗎?所有軟體都可以順利存取,除了EXCEL! 實際的路徑『E:\Wildson'sDoc[...
- 5輕鬆建立Excel備份檔 - 練功坊- 碁峰資訊