Вставить текст, содержащий апостроф - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь вставить фиксированную часть текста в переменную часть текста.

В моей фиксированной части текста появляется несколько апострофов . Я получаю сообщение об ошибке.

Это часть кода, содержащая апострофы:

For j = 1 To nrOfItems
For i = 1 To nrOfLanguages

Set c1 = Nothing
Set c2 = Nothing
    If Not IsEmpty(Sheets("INPUT IMAGE WITH MOUSEOVER").Cells(j + 2, i * 2).Value) Then
        Set c1 = Sheets("INPUT IMAGE WITH MOUSEOVER").Cells(j + 2, (i * 2) + 1)
        Set c2 = Sheets("INPUT IMAGE WITH MOUSEOVER").Cells(j + 2, i * 2)
    
        code = code + "if(GETVALUE(""SD1TAAL"") ==" + _
        CStr(Sheets("INPUT WITH MOUSEOVER").Cells(1, i * 2).Value) + ")" + _
        "{ my $image =  '<img src=" ' . GRAPHICSPATH() . ' " + _
        fnConvert2HTML (c1) + _
        ".png "/>' ; my $toolTip =' " + _
        fnConvert2HTML (c2) + _
        "'; return TOOLTIP($image, $toolTip); } "
    End If

Next i
    Sheets("OUTPUT_IMAGE_WITH_MOUSEOVER").Cells(j, 1).Value = begincode + code + endcode
    code = ""
Next j

Что-то идет не так с ' . GRAPHICSPATH() . и далее.

Как может Заменяю апострофы?

1 Ответ

1 голос
/ 29 мая 2020

Нет необходимости специально экранировать какой-либо апостроф, если он находится внутри строки, разделенной двойными кавычками. Достаточно избежать внутренних двойных кавычек, удвоив их:

Пожалуйста, попробуйте построить последнюю строку следующим образом:

"{ my $image =  '<img src="" ' . GRAPHICSPATH() . ' " + _
        fnConvert2HTML(c1) + _
        ".png ""/>' ; my $toolTip =' " + _
        fnConvert2HTML(c2) + _
        "'; return TOOLTIP($image, $toolTip); } "

В противном случае VBA понимает, что все после src=" комментарий ... И, кроме того, старайтесь избегать использования + для конкатенации и возьмите за привычку использовать & вместо него.

...