Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA应用程序。尝试将公式值指定给变量时出现评估错误2015_Excel_Vba_Formula - Fatal编程技术网

Excel VBA应用程序。尝试将公式值指定给变量时出现评估错误2015

Excel VBA应用程序。尝试将公式值指定给变量时出现评估错误2015,excel,vba,formula,Excel,Vba,Formula,我试图将公式值赋给一个名为“Days”的变量 但当我做如下陈述时,我从Days变量中得到了错误2015 ThisWorkbook.Worksheets("Plan1").Activate Range("F4").Select Days = Application.Evaluate("DATEVALUE(MID(B4,7,9))-DATEVALUE(CONCATENATE(RIGHT(A4,4),LEFT(B4,4)))+1") 我的目

我试图将公式值赋给一个名为“Days”的变量

但当我做如下陈述时,我从Days变量中得到了错误2015

ThisWorkbook.Worksheets("Plan1").Activate
Range("F4").Select
Days = Application.Evaluate("DATEVALUE(MID(B4,7,9))-DATEVALUE(CONCATENATE(RIGHT(A4,4),LEFT(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,8
修改了中间部分,而不是
wsP.Range(“B4”).Value,7,8
。我无法想象这个公式在您的情况下是如何工作的……

您能告诉我们A4和B4单元格中包含哪些值吗?然后,当您尝试编写或计算公式时,应该使用逗号(“,”)而不是“;”,与本地化无关。当公式写入单元格时,VBA将使用本地化。我修复了公式语法,但没有帮助,出现了A4和B4值A4=“每卲do:01/0“| B4=“9/20-22/09/20序号麩" | 没有逗号,我这样做是为了组织01/09/20和22/09/20的值,然后减去两者,稍后我将使用结果(22)在另一个公式中,我建议您忘记计算并编写纯VBA代码以获得所需。事实上,我将发布一个能够解决您问题的答案。至少,这是我此刻的想法…:)工作表中的公式返回正确吗?我是否应该理解您的正常格式是“dd/mm/yy”"? 我修改了代码的中间部分以正确返回必要的日期…@ldsouza:很高兴我能帮上忙!
 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...