首页 > 解决方案 > 在我的 VBA 中使用 EOMONTH?

问题描述

我在这段 VBA 代码中使用 EOMONTH 时遇到了一些问题:

'Create a new file that will receive the data
Set newWB = Workbooks.Add
With newWB

        Set newS = newWB.Sheets("Sheet1")
        newS.Range("A1").PasteSpecial Paste:=xlPasteValues, 
Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    'Save in CSV

      Dim PathDate    As String
      Dim SavePath    As String
      Dim SaveAs      As String
      Dim FileName    As String
      Dim sDate       As String

'// File path date
PathDate = Format(Range("D1"), 0), "MMDDYYYY")

'// Save it Path
SavePath = "C:\User"

'// Format the on "D1" to MMDDYYYY
sDate = Format(currentWB.Sheets("Upload sheet").Range("D1"), "MM.DD.YYYY")

'// File Name
FileName = "NewFileName"

'// Save with File Name & Date & .CSV
SaveAs = SavePath & "\" & FileName & "-" & sDate & ".csv"
.SaveAs FileName:=SaveAs
Application.DisplayAlerts = True

End With

我想做的就是得到与 =EOMONTH(D1,0) 相同的结果,而不是 S2。

标签: vbaexcel

解决方案


就像是

PathDate = Format(currentWB.Sheets("Upload sheet").Range(Application.WorksheetFunction.EoMonth(Range("D1").value, 0)), "MMDDYYYY")

你说代替S2。我想知道这是否有点过于字面意思,你的意思是

With currentWB.Sheets("Upload sheet")
     PathDate = Format(Application.WorksheetFunction.EoMonth(.Range("D1").value, 0),"MMDDYYYY")
End With

推荐阅读