ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦sÀɮɦ۰ʳƥ÷ÀɮרÃÂର.xlsx®æ¦¡

¦^´_ 1# msmplay
SaveCopyAs¦n¹³¨S¿ìªk«ü©w®æ¦¡¡C¨S·Q¨ì§ó¦nªº¿ìªk¡A³o­Ó¸Õ¸Õ¬Ý¡C
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     On Error Resume Next
  3.     Dim mypath As String, fname As String
  4.    
  5.     If Me.Saved = True Then
  6.         fname = "¦Û°Ê³Æ¥÷" & Format(Date, "yymmdd")
  7.         mypath = ThisWorkbook.Path & "/³Æ¥÷/"
  8.         ThisWorkbook.SaveCopyAs mypath & fname & ".xlsm"
  9.         
  10.         Workbooks.Open (mypath & fname & ".xlsm")
  11.         Application.DisplayAlerts = False
  12.         ActiveWorkbook.SaveAs mypath & fname, FileFormat:=51
  13.         Application.DisplayAlerts = True
  14.         ActiveWorkbook.Close
  15.         Kill (mypath & fname & ".xlsm")
  16.     End If
  17.    
  18. End Sub
½Æ»s¥N½X

TOP

¥»©«³Ì«á¥Ñ zyzzyva ©ó 2016-8-21 00:40 ½s¿è

3Fªºcode¦³ÂIbug¡A¤@©w­n¥ý¦sÀɦAÃö³¬¤~¦³¥Î¡A¦pªG¬O¦b¹ï¸Üµøµ¡¥X¨Ó¦A«ö¡u¬O¡v¦sÀÉ´N¤£·|§@¥Î¡C
À³¸Ó¬O¨Æ¥óIJµo¥ý«áªº°ÝÃD¡A­n¦A­×§ï¤@¤U¡C

TOP

¥»©«³Ì«á¥Ñ zyzzyva ©ó 2016-8-21 00:56 ½s¿è

¦^´_ 6# msmplay
©Ç©Ç¡A§Ú¥ÎªÅ¥Õªº´ú¨S¦³³o­Ó°ÝÃD¡A¥i¥H¥ý¦bkill¤U¤@¦æ¥[­ÓActiveWorkbook.Save¡Abug©ú¤Ñ¦³ªÅ¦A¬ã¨s¡C

TOP

¦^´_ 6# msmplay
«á¨Ó·Q¤F¤@¤U¡A¦pªG¨S¦³¤@©w­n¥ÎSaveCopyAsªº­ì¦]¡A¥Îl¤jªº¤è¦¡ª½±µSaveAs¤ñ¸û¦n¡C
¤£¹L³Ì¦nÁÙ¬O¥[­Óif§PÂ_¡A¤£µM¦pªGÃö³¬ªº®É­Ô¿ï§_¡A³Æ¥÷ÁÙ¬O·|°õ¦æ¡A­ì¨Ó¥¿½Tªº³Æ¥÷´N³Q»\±¼¤F¡C
®³ºô¸ô¤W¸òl¤jªºcode²Õ¦X§ï¤F¤@¤U¡A±z¦A°Ñ¦Ò¬Ý¬Ý¡C
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Dim mypath As String, fname As String

  3.     If Not Me.Saved Then
  4.         Msg = "Do you want to save the changes you made to "
  5.         Msg = Msg & Me.Name & "?"
  6.         Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
  7.         Select Case Ans
  8.             Case vbYes
  9.                 Me.Save
  10.             Case vbNo
  11.                 Me.Saved = False
  12.             Case vbCancel
  13.                 Cancel = True
  14.                 Exit Sub
  15.           End Select
  16.     End If
  17.    
  18.     If Me.Saved Then
  19.         Application.DisplayAlerts = False 'Ãö³¬¨t²Îĵ§i°T®§
  20.         fname = "¦Û°Ê³Æ¥÷" & Format(Date, "yymmdd") & ".xlsx"
  21.         mypath = ThisWorkbook.Path & "\³Æ¥÷\"
  22.         'ThisWorkbook.Save '­nÀx¦s¦Û¨­ÀɮסA½Ð¦Û¦æ¿ï¾Ü­n¤£­nÀx¦s
  23.         ThisWorkbook.SaveAs mypath & fname, FileFormat:=xlOpenXMLWorkbook
  24.         Application.DisplayAlerts = True '¶}±Ò¨t²Îĵ§i°T®§
  25.     Else
  26.         Me.Saved = True
  27.     End If
  28.       
  29. End Sub
½Æ»s¥N½X

TOP

¦^´_ 12# msmplay
´ú¸Õ¬Ý¬Ý¡C(¤£­n©ñ¦b®Ú¥Ø¿ý¦pC:\¤U)
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Dim mypath As String, fname As String

  3.     If Not Me.Saved Then
  4.         Msg = "Do you want to save the changes you made to "
  5.         Msg = Msg & Me.Name & "?"
  6.         Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
  7.         Select Case Ans
  8.             Case vbYes
  9.                 Me.Save
  10.             Case vbNo
  11.                 Me.Saved = False
  12.             Case vbCancel
  13.                 Cancel = True
  14.                 Exit Sub
  15.           End Select
  16.     End If
  17.    
  18.     If Me.Saved Then
  19.         Application.DisplayAlerts = False 'Ãö³¬¨t²Îĵ§i°T®§
  20.         fname = "\¦Û°Ê³Æ¥÷" & Format(Date, "yymmdd") & ".xlsx"
  21.         mypath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
  22.         'ThisWorkbook.Save '­nÀx¦s¦Û¨­ÀɮסA½Ð¦Û¦æ¿ï¾Ü­n¤£­nÀx¦s
  23.         ThisWorkbook.SaveAs mypath & fname, FileFormat:=xlOpenXMLWorkbook
  24.         Application.DisplayAlerts = True '¶}±Ò¨t²Îĵ§i°T®§
  25.     Else
  26.         Me.Saved = True
  27.     End If
  28.    
  29.     Targetfile = mypath & fname

  30.     If GetAttr(Targetfile) Then
  31.         SetAttr Targetfile, vbReadOnly
  32.     End If
  33.       
  34. End Sub
½Æ»s¥N½X

TOP

¦^´_ 14# msmplay
¹ïªü¡A¬O°ßŪÄݩʪº°ÝÃD¡C¦pªG§Æ±æ¤§«áÁÙ¥i¥Hª½±µ¦sÀÉ¡A¥i¯à¦sÀÉ«e­n¥[­ÓÀˬd¡A¦pªGÄݩʤw¸g¬O°ßŪ¡A´N§ï¦^¤@¯ë(vbNormal)

TOP

¦^´_ 16# msmplay
§ï¤F¤@¤U¡AÀ³¸Ó¥i¥H¡A¦A¸Õ¸Õ¬Ý¡C
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Dim mypath As String, fname As String
  3.    
  4.     fname = "\¦Û°Ê³Æ¥÷" & Format(Date, "yymmdd") & ".xlsx"
  5.     mypath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
  6.     Targetfile = mypath & fname
  7.    

  8.     If Not Me.Saved Then
  9.         Msg = "Do you want to save the changes you made to "
  10.         Msg = Msg & Me.Name & "?"
  11.         Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
  12.         Select Case Ans
  13.             Case vbYes
  14.                 Me.Save
  15.             Case vbNo
  16.                 Me.Saved = False
  17.             Case vbCancel
  18.                 Cancel = True
  19.                 Exit Sub
  20.           End Select
  21.     End If
  22.    
  23.     If Me.Saved Then
  24.         Application.DisplayAlerts = False 'Ãö³¬¨t²Îĵ§i°T®§
  25.         'ThisWorkbook.Save '­nÀx¦s¦Û¨­ÀɮסA½Ð¦Û¦æ¿ï¾Ü­n¤£­nÀx¦s
  26.         If Dir(Targetfile) <> "" Then
  27.             If GetAttr(Targetfile) And vbReadOnly Then
  28.                 SetAttr Targetfile, vbNormal
  29.             End If
  30.         End If
  31.         ThisWorkbook.SaveAs mypath & fname, FileFormat:=xlOpenXMLWorkbook
  32.         Application.DisplayAlerts = True '¶}±Ò¨t²Îĵ§i°T®§
  33.     Else
  34.         Me.Saved = True
  35.     End If

  36.     If Dir(Targetfile) <> "" Then
  37.         If GetAttr(Targetfile) Then
  38.             SetAttr Targetfile, vbReadOnly
  39.         End If
  40.     End If
  41.       
  42. End Sub
½Æ»s¥N½X

TOP

¦^´_ 19# msmplay
À³¸Ó¥u¬O¦h¤F¤@­Ó\¡A§ï¦¨mypath = ThisWorkbook.Path & "\³Æ¥÷"¸Õ¸Õ¬Ý¡C

TOP

        ÀR«ä¦Û¦b : ¤@¥y·Å·xªº¸Ü¡A´N¹³©¹§O¤H¨­¤WÅx­»¤ô¡A¦Û¤v·|ªg¨ì¨â¤Tºw¡C
ªð¦^¦Cªí ¤W¤@¥DÃD