格式化variables为date(mm / dd)

我正在尝试创build一个脚本来标识上个月的date范围(单元格G9是今天的date)。 这是工作; 然而,输出格式化的date与我打算的不同。 当应该是“08/01”和[J37]输出是“6:11:37 AM”(解释为时间)时,[J36]输出是“01/08” 31" 。 我只是在特定的单元格输出编码,因为我想看到它正在工作。 但是,这是我想格式化的variables,而不是单元格。 我将在未来的代码中使用startdate和enddatevariables,这些variables本身在任何单元格中都是不可见的。

我试图使用格式(startdate,mm / dd),但是我得到了一个溢出错误。

这是我的脚本:

Dim thismonth As Integer thismonth = Month(Sheet1.[G9]) Dim startdate As Date Dim enddate As Date Select Case thismonth Case 1 startdate = 12 / 1 enddate = 12 / 31 Case 2 startdate = 1 / 1 enddate = 1 / 31 Case 3 startdate = 2 / 1 enddate = 2 / 28 Case 4 startdate = 3 / 1 enddate = 3 / 31 Case 5 startdate = 4 / 1 enddate = 4 / 30 Case 6 startdate = 5 / 1 enddate = 5 / 31 Case 7 startdate = 6 / 1 enddate = 6 / 30 Case 8 startdate = 7 / 1 enddate = 7 / 31 Case 9 startdate = 8 / 1 enddate = 8 / 31 Case 10 startdate = 9 / 1 enddate = 9 / 31 Case 11 startdate = 10 / 1 enddate = 10 / 31 Case 12 startdate = 11 / 1 enddate = 11 / 30 End Select Sheet1.[J36] = startdate Sheet1.[J37] = enddate 

如何更简单的解决scheme:

 Dim startDate as Date Dim endDate as Date startDate = Application.WorksheetFunction.EOMONTH(Sheet1.[G9],-2) + 1 endDate = Application.WorksheetFunction.EOMONTH(Sheet1.[G9],-1) 

你可以完全摆脱VBA,并分别直接在J36J37写这个工作表公式。

J36: =EOMONTH(G9,-2)+1

J37: =EOMONTH(G9,-1)