Оценивая строки в 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 становится красной, и я не могу ее запустить.
Есть идеи? Спасибо Гораций
2 ответа
Вместо этого вы указываете 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"""
(будет содержать кавычки)
Затем используйте функцию замены для поиска кавычек в имени name = Replace(name,"""","")
Затем запустите msgbox MsgBox (name & vbNewLine & Date)
Это должно удалить лишние "отметки, с которыми вы сталкиваетесь