【发布时间】:2021-04-21 16:56:38
【问题描述】:
问题
我只想在 A2 单元格中说Exam Mailers for (current month) (current year)。示例:Exam Mailers for April 2020
如果我这样做:
Range("a2").Value = "Exam Mailers for " + (months(i))
它有效,我得到了
Exam Mailers for April
但如果我这样做:
Range("a2").Value = "Exam Mailers for " + (months(i)) + " " + Year(Now)
失败了
Run-time error `13`: Type mismatch
这是目前为止的完整代码:
Sub datechange_1()
Dim months(11) As String
months(0) = "Janurary"
months(1) = "Feburary"
months(2) = "March"
months(3) = "April"
months(4) = "May"
months(5) = "June"
months(6) = "July"
months(7) = "August"
months(8) = "September"
months(9) = "October"
months(10) = "November"
months(11) = "December"
Dim nowMonth As Integer
nowMonth = Month(Now)
For i = 0 To 11
If nowMonth = (i + 1) Then
Range("a2").Value = "Exam Mailers for " + (months(i)) + " " + Year(Now)
End If
Next
End Sub
感谢任何想法或建议。谢谢!
【问题讨论】:
-
把
+改成& -
您可以使用 + 来连接两个字符串,但如果其中一个参数是数字类型,您将收到类型错误,因为 VB 会将 + 运算符解释为数字加法而不是字符串连接。
-
这就是为什么您应该立即切换到
&进行所有连接(我知道重复令人作呕)。