您好我正在使用此过去的帖子How To Get The Current Year Using Vba
答案是使用Year(Date)
所以我这样实现了它:
Dim a As Integer
a = Year(Date)
但是当我尝试使用它时,我收到了错误
Runtime 13 : Type Mismatch
答案 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
并编译代码。