首页 > 解决方案 > 字符串中的 VBA EXCEL 公式

问题描述

嗨,我想将以下公式放入 STRING

Dim stringAppoggio As String
Dim myMonth As String

myMonth = "January 2020"

stringAppoggio="=DAY(EOMONTH(DATEVALUE(01-'&myMonth&'-&YEAR(myMonth)),0))"

它并没有真正给我语法错误,但我没有在字符串中看到公式的结果

谢谢

标签: excelvba

解决方案


好吧,根据我的评论,这里有一些错误:

  • 您使用单引号而不是双引号将变量与 VBA 公式语法分开
  • 您完全忘记了第二个myMonth变量周围的引号
  • 您创建了一个根本行不通的公式

请记住,您的变量不仅仅是一个月,而是一个包含月份和年份的字符串 > "January 2020",因此DATEVALUE不需要01-andYEAR(myMonth)来工作。让我解释:

=DATEVALUE("January 2020")

将返回Integer43831,或者换句话说:1-1-2020. 其次,EOMONTH将返回与 an 相同的月底Integer,而DAY将返回当天的编号。因此,您的公式将显示为:

=DAY(EOMONTH(DATEVALUE("January 2020"),0))

现在用 VBA 写这个:

Dim stringAppoggio As String
Dim myMonth As String

myMonth = "January 2020"
stringAppoggio = "=DAY(EOMONTH(DATEVALUE(""" & myMonth & """),0))"

您可以检查它是否有效:

Debug.Print Evaluate("=DAY(EOMONTH(DATEVALUE(""" & myMonth & """),0))")

注意:看到三引号了吗?那是因为我们需要DATEVALUE在引号内输入一个字符串才能工作,否则它不会是一个字符串并且会返回一个错误


推荐阅读