如何使用VBA获取当前年份

时间:2014-05-05 18:55:44

标签: excel vba

您好我正在使用此过去的帖子How To Get The Current Year Using Vba

答案是使用Year(Date)所以我这样实现了它:

Dim a As Integer
a = Year(Date)

但是当我尝试使用它时,我收到了错误

  

Runtime 13 : Type Mismatch

2 个答案:

答案 0 :(得分:5)

在Excel VBA中,您要使用DATEPART。假设您尝试获取年份的数据有效(很难从您问题中的小信息中了解到这一点)。

来自here

  

MS EXCEL:DATEPART FUNCTION(VBA)

     

了解如何使用带有语法和示例的Excel DATEPART函数。

     

<强>描述

     

Microsoft Excel DATEPART函数返回a的指定部分   给定日期。

     

<强>语法

     

Microsoft Excel DATEPART功能的语法是:

     

DatePart(间隔,日期,[firstdayofweek],[firstweekofyear])

和这个具体的例子:

  

DatePart(&#34; yyyy&#34;,&#34; 15/10 / 2012&#34;)将返回2012

答案 1 :(得分:4)

我怀疑您的类型不匹配在其他地方,因为Year(Date)有效。另一种选择是使用Year(Now)

我怀疑你已经将你想要分配的变量声明为奇怪的东西,因为VBA会为你制作很多奇怪的演员

Dim a As String
a = Year(Now)   ' "2014"

Dim b As Double
b = Year(Now)   '2014

Dim c As Integer
c = Year(Now)   '2014

Dim d As Date
d = Year(Date)  '#7/6/1905#

Dim e
e = Year(Now)   ' 2014 (implicitly cast to integer)

确保在模块顶部设置Option Explicit并编译代码。