2013-12-17 1 views
2

Siddharth Rout (this Post) 덕분에 새 워크 시트에 시트를 저장하는 방법을 알게되었습니다.Excel에서 VBA를 사용하여 파일 이름에 날짜 및 시간을 추가하는 방법

Sub SaveSheet() 
    Dim FName As String 

    ActiveSheet.Copy 
    With ActiveSheet.UsedRange 
     .Copy 
     .PasteSpecial xlValues 
     .PasteSpecial xlFormats 
    End With 
    Application.CutCopyMode = False 


    FName = "C:\Users\somebody\Documents\TestSheet" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsm" 
    ActiveWorkbook.SaveAs Filename:=FName, _ 
          FileFormat:=xlOpenXMLWorkbookMacroEnabled 



End Sub 

당신이 날은이 작업을 수행하는 방법을 알려 주시기 바랍니다 수 있습니다

TestSheet_25May2013_5pm.xls : 이제 내 문제는 내가 좋아하는 파일 생성의 날짜 및 시간을 추가하는 방법입니까?

답변

4

변경

FName = "C:\Users\somebody\Documents\TestSheet" & _ 
     Format(Range("E19"), "mmm-d-yyyy") & ".xlsm" 

그런 다음 셀이 코드가

FName = "C:\Users\somebody\Documents\TestSheet_" & _ 
     Format(Range("E19"), "ddmmmyyyy") & ".xlsm" 
된다 이러한 경우 유효한 날짜를 ..이 있는지 확인 Range("E19")에서 날짜를 따기 경우
FName = "C:\Users\somebody\Documents\TestSheet_" & _ 
     Format(Date, "ddmmmyyyy") & ".xlsm" 

+0

감사 싯다 르트 나라 얀, :) 도움이 될 완벽한 도움 다행 – Behseini

+0

했다 –

4

Siddharth의 솔루션을 완료하려면 파일에 시간을 포함시키는 코드가 있습니다. 이름 : 당신은 시간 그냥 라운드 대신 내림하려는 경우 Int()Round()을 변화시킬 수

Function SaveDateTime() as String 

    Dim SaveTime As Integer 
    SaveTime = Round(Timer/3600, 0) 

    Dim AMPM As String: AMPM = "AM" 
    If SaveTime >= 12 Then 
     AMPM = "PM" 
     If SaveTime > 12 Then 
      SaveTime = SaveTime - 12 
     End If 
    End If 

    SaveDateTime = "C:\Users\somebody\Documents\TestSheet_" & _ 
        Format(Date, "ddmmmyyyy") & "_" & _ 
        SaveTime & AMPM & ".xlsm" 

End Function 

참고. 또한 날짜 형식이 PC에 달려 있기 때문에이 언어로 실행되는 PC의 언어 설정에주의하십시오.

편집 : 심지어 간단한 해결책

Function SaveDateTime() as String 

    SaveDateTime = "C:\Users\somebody\Documents\TestSheet_" & _ 
        Format(Date, "ddmmmyyyy") & "_" & _ 
        Format(Time, "hAM/PM") & ".xlsm" 

End Function