excel - 字符串中的 VBA EXCEL 公式
问题描述
嗨,我想将以下公式放入 STRING
Dim stringAppoggio As String
Dim myMonth As String
myMonth = "January 2020"
stringAppoggio="=DAY(EOMONTH(DATEVALUE(01-'&myMonth&'-&YEAR(myMonth)),0))"
它并没有真正给我语法错误,但我没有在字符串中看到公式的结果
谢谢
解决方案
好吧,根据我的评论,这里有一些错误:
- 您使用单引号而不是双引号将变量与 VBA 公式语法分开
- 您完全忘记了第二个
myMonth
变量周围的引号 - 您创建了一个根本行不通的公式
请记住,您的变量不仅仅是一个月,而是一个包含月份和年份的字符串 > "January 2020"
,因此DATEVALUE
不需要01-
andYEAR(myMonth)
来工作。让我解释:
=DATEVALUE("January 2020")
将返回Integer
43831,或者换句话说: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
在引号内输入一个字符串才能工作,否则它不会是一个字符串并且会返回一个错误
推荐阅读
- laravel-5.7 - 如何在我的查看页面中将加密密码显示为解密值?
- html - 如何将框内的文本移动到特定位置
- python - 按下按钮后打开一个新窗口/没有/类 PyQT5
- android - 改造不写所有请求的数据
- java - Cucumber 的“未定义步骤”用于使用 .jar 库中的步骤定义
- python - 从 Python 运行 WinSCP 命令
- android - 如何在不使用带有 Volley 的 OkHttp 层的情况下使用 Stetho 检查 volley 网络请求
- sql - 对重复行求和而不使用 group by
- javascript - 鉴于这种情况,在 JavaScript 中使用 async/await 的正确方法是什么
- java - 添加 spring-boot-starter-parent 删除 javax.validation.*