簡體   English   中英

字符串中的 VBA EXCEL 公式

[英]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))"

它並沒有真正給我一個語法錯誤,但我沒有在字符串中看到公式的結果

謝謝

好吧,根據我的評論,這里有一些錯誤:

  • 您已使用單引號而不是雙引號將變量與 VBA 公式語法分開
  • 您完全忘記了第二個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM