在VBA中计算字符串



我有一个字符串,从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

这应该会删除你面对的额外的"标记

最新更新