如何避免这种奇怪的约会强制

时间:2017-01-03 09:18:43

标签: excel-vba vba excel

我在C4中有这个公式:

=TEXT(EOMONTH(NOW(),-1),"MMM-yy")

显示的日期为Dec-16,即2016年12月

然后我运行这个vba:

Sub makeDateValues()
  With Range("C4")
      .Value = .Value
  End With
End Sub

日期变为2017年12月16日。

如何安全地修改上述内容以使日期保持在2016年12月?

4 个答案:

答案 0 :(得分:1)

试试这样:

Sub makeDateValues()

With Range("C4")
   .Value = Format(WorksheetFunction.EoMonth(Date, -1), "MMM-YYYY")
End With

End Sub

答案 1 :(得分:1)

2个选项:

选项1

您可以将其保留为日期,并在With块中添加行

.numberformat = "MMM-yy" 

选项2

首先在VBA中创建日期

Range("C4") = Format(Now(), "MMM-yy")

答案 2 :(得分:1)

哟可以从公式中删除TEXT()

=EOMONTH(NOW(),-1)

只需使用主工具功能区中的单元格格式,即可根据需要显示此数字。

pic2

pic2

答案 3 :(得分:0)

我将公式修改为以下内容:

=TEXT(EOMONTH(NOW(),-1),"MMMM-yyyy")

现在一切都好。