另存新檔問題(頁1) - Excel程式區- 麻辣家族討論版版

文章推薦指數: 80 %
投票人數:10人

另存新檔問題. 使用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所提供



請為這篇文章評分?