VBA Application.Evaluate Error 2015尝试将公式值分配给变量

问题描述

我正在尝试将公式值分配给名为“天”的变量

"=DATEVALUE(MID(B4,7,9))-DATEVALUE(CONCATENATE(RIGHT(A4,4),LEFT(B4,4)))+1"

但是当我在下面声明时,我从Days变量中得到了错误2015

ThisWorkbook.Worksheets("Plan1").Activate
Range("F4").Select
Days = Application.Evaluate("DATEVALUE(MID(B4,4)))+1")

我的目标是使用该变量作为值进行其他计算,但是首先我必须将公式值分配给Days变量。

我希望我能说清楚自己,我的英语不太好。

解决方法

请尝试以下方法:

 Dim Days As Long,wsP As Worksheet

 Set wsP = ActiveSheet ' ThisWorkbook.Worksheets("Plan1")
 Days = DateValue(Mid(wsP.Range("B4").Value,8,8)) - _
        DateValue(Right(wsP.Range("A4").Value,4) & _
                 left(wsP.Range("B4").Value,4)) + 1
 wsP.Range("F4").Value = Days 'I only suppose you need the value to be placed here.
                              ' Otherwise,I cannot understand why that cell was selected...

请注意:我使用wsP.Range("B4").Value,8而非wsP.Range("B4").Value,7,8修改了Mid部分。我不认为该公式在您的情况下效果如何...