[英]VBA EXCEL formula in a String
嗨,我想将以下公式放入字符串中
Dim stringAppoggio As String
Dim myMonth As String
myMonth = "January 2020"
stringAppoggio="=DAY(EOMONTH(DATEVALUE(01-'&myMonth&'-&YEAR(myMonth)),0))"
它并没有真正给我一个语法错误,但我没有在字符串中看到公式的结果
谢谢
好吧,根据我的评论,这里有一些错误:
myMonth
变量周围的引号请记住,您的变量不仅仅是一个月,而是一个包含月份和年份的字符串 > "January 2020"
,因此DATEVALUE
不需要01-
和YEAR(myMonth)
来工作。 让我解释:
=DATEVALUE("January 2020")
将返回Integer
43831,或者换句话说: 1-1-2020
。 其次, EOMONTH
将作为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
一个带引号的字符串才能工作,否则它不会是一个字符串并且会返回一个错误
Dim stringAppoggio As String
Dim myMonth As String
myMonth = Chr(34) & "January 2020" & Chr(34)
stringAppoggio = "=DAY(EDATE(" & myMonth & ",1)-DAY(" & myMonth & "))"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.