Как удалить символы в конце текста?

#excel #vba

#excel #vba

Вопрос:

Я извлекаю данные из таблицы в документе Word. Данные дополняются странным символом «» (похоже на бюллетень). Чтобы удалить это, я использовал приведенные ниже шаблоны регулярных выражений.

 For i = 1 To tablecount
    t_rows = ObjDoc.Tables(i).Rows.Count
    t_cols = ObjDoc.Tables(i).Columns.Count

    For j = 1 To t_cols
        t_content = ObjDoc.Tables(i).Cell(1, j)
        MsgBox (t_content)
    
        t_header = format(t_content)
        MsgBox (t_header)
        count = 0

       if t_header = "ID"
           count = count  1 
    Next
Next

Function format()
    Set objexp = New RegExp
    objexp.Pattern = "[^a-zA-Z0-9s]" '(I want the spaces to be retained hence this pattern)
    objexp.Global = True
    objexp.IgnoreCase = True

    format = objexp.Replace(x, "")
End Function
  

В первом msgbox указано значение данных:
Первый вывод Msgbox

Второе сообщение (после выполнения действий внутри формата функции) выдает:
Второй вывод Msgbox

После выполнения действия с регулярным выражением я вижу дополнительный перевод строки / пробелы (хотя и не уверен), и, следовательно, мое условие if не выполняется.

Как я могу получить вывод в виде «ID».

Комментарии:

1. Это похоже на код VBA. Если это так, пожалуйста, измените тег. vb.net и VBA — это два разных языка.

2. я не могу вставить странный символ в вопрос.. это похоже на маркеры в документе Word.

3. Я также добавил скриншот моего вывода для большей наглядности

Ответ №1:

Если я правильно понимаю вашу проблему, вы видите конец маркеров ячеек. Вы можете удалить это следующим образом…

 t_header = Left(t_content, Len(t_content) - 2)
  

Комментарии:

1. Спасибо. Теперь это работает. Просто из любопытства, почему 2 вычитается из общей длины вместо 1, пожалуйста?

2. Маркер конца ячейки состоит из символа звонка, chr (7), и возврата каретки, chr (13), поэтому именно эти последние 2 символа нуждаются в удалении.