获得年份价值

时间:2014-06-02 20:12:57

标签: datetime excel-vba vba excel

我想获得存储在单元格中的日期的年份值。例如,存在于单元格B35中的日期值3/25/2012,我正在使用Year(Range("B35"))。结果它给了我1.6的价值。我尝试使用日期函数来转换值,但没有奏效。请帮忙!感谢

3 个答案:

答案 0 :(得分:0)

你需要查看单元格的值 - 范围是一个对象,它所持有的值是一个属性:

year(Sheets("SheetName").cells(35,2).value)

答案 1 :(得分:0)

当我使用您提供的日期测试Year(Range("B35"))时,我会收到2012年。由于您尚未指定工作表,因此VBA会在 ActiveSheet 上引用B35。我的猜测是,你工作簿的一张工作表中的B35包含值1.6。

要解决此问题,请将其添加到您的代码中:

Dim ws As Worksheet
Set ws = Sheets("YourSheetName")

Year(ws.Range("B35"))

答案 2 :(得分:0)

尝试使用datepart函数?我认为Year(arg)返回一个字符串。

dim yr as date
yr = Sheets("yoursheetnamehere").Range("B35").Value
yr = datepart("yyyy", yr)

现在无法继续测试,但这应该使用正确的语法。