问题描述
其中有些字符似乎是个问题
我在工作表中的原始公式(有效):
ThisWorkbook.Worksheets(“ Zazmluvnenia”)。Cells(“ 3”,“ AM”)。Value =“ =Výkony!M4&”,“&TEXT(Výkony!J4;” dmyyyy“)&”,“ &TEXT(Výkony!K4;“ hh:mm”)“
由于引号,无法将其放入VBA。我试图通过以下方式解决问题:How do I put double quotes in a string in vba?
我根据上述问题的答案更改了代码:
"=Výkony!M3 & " & Chr(34) & "," & Chr(34) & " & TEXT(Výkony!J3;" & Chr(34) & "d.m.yyyy" & Chr(34) & ") & " & Chr(34) & "," & Chr(34) & " & TEXT(Výkony!K3;" & Chr(34) & "hh:mm" & Chr(34) & ")"
发生错误“ 1004”。
解决方法
双引号vs CHR(34)
- 您的
CHR
解决方案几乎可以解决,但是您不知道 VBA 不能将分号(;
)识别为与 Excel 可以。您始终必须在 VBA 中用逗号替换每个分号(用作分隔符)。 - 类似地, VBA 使用点(
.
)作为小数点分隔符。
代码
Option Explicit
Sub SEMI()
Dim strF As String
' Double double-quotes ("") in several rows.
strF = "=Výkony!M4&"",""" _
& "&TEXT(Výkony!J4,""d.m.yyyy"")&"",""" _
& "&TEXT(Výkony!K4,""hh:mm"")"
' CHR(34) in several rows.
strF = "=Výkony!M4&" & Chr(34) & "," & Chr(34) _
& "&TEXT(Výkony!J4," & Chr(34) & "d.m.yyyy" & Chr(34) & ")&" _
& Chr(34) & "," & Chr(34) _
& "&TEXT(Výkony!K4," & Chr(34) & "hh:mm" & Chr(34) & ")"
' Double double-quotes ("") in one row.
strF = "=Výkony!M4&"",""&TEXT(Výkony!J4,""&TEXT(Výkony!K4,""hh:mm"")"
' CHR(34) in one row.
strF = "=Výkony!M4&" & Chr(34) & "," & Chr(34) & "&TEXT(Výkony!J4," & Chr(34) & "d.m.yyyy" & Chr(34) & ")&" & Chr(34) & "," & Chr(34) & "&TEXT(Výkony!K4," & Chr(34) & "hh:mm" & Chr(34) & ")"
ThisWorkbook.Worksheets("Zazmluvnenia").Cells("3","AM").Value = strF
End Sub