我有一个字符串,从Excel中的单元格中读取,这是这样的:
""Horace Lai" & vbNewLine & Date"
或
"Chr(149) & "level 1" & vbNewLine & Chr(9) & Chr(149) & "level 2" & Chr(149) & "level 1" & vbNewLine & Chr(9) & Chr(149) & "level 2" & vbNewLine & Chr(9) & Chr(9) & Chr(149) & "level 3""
我希望能够计算这些字符串,使""Horace Lai" & vbNewLine & Date"
变成:
Horace Lai
2014-06-20
到目前为止,我已经尝试了ScriptControl没有成功。它似乎不喜欢我给字符串加上双引号。
Sub testing()
Dim sc As ScriptControl
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
MsgBox sc.Eval(""Horace Lai" & vbNewLine & Date")
End Sub
MsgBox行变成红色,我无法运行它。
任何想法?谢谢贺拉斯
指定JScript,而不是:
Dim test As String, result As String
test = "Chr(149) & ""level 1"" & vbNewLine & Chr(9) & Chr(149) & ""level 2"" & Chr(149) & ""level 1"" & vbNewLine & Chr(9) & Chr(149) & ""level 2"" & vbNewLine & Chr(9) & Chr(9) & Chr(149) & ""level 3"""
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
result = sc.Eval(test)
Debug.Print result
•level 1
•level 2•level 1
•level 2
•level 3
首先将名称加载到一个变量中,即name = """Horace Lai"""
(这将包含引号)
然后使用replace函数搜索名称为name = Replace(name,"""","")
的引号
然后运行MsgBox (name & vbNewLine & Date)
的msgbox
这应该会删除你面对的额外的"标记