Удаление невидимых символов chr(0)-chr(31) windows 1251 WORD - VBA

Узнай цену своей работы

Формулировка задачи:

Вообщем нужно в таблице (в 4-ой ячейке) удалить все неопознанное и невидимое. И вроде заменяет на пробел , но помимо этого еще в конце лишнего добавляет... Как его правильно заменить?)
Листинг программы
  1. Dim obl1, obl2, obl3 As String
  2. Dim v(227 To 259, 1 To 2) As String
  3. v(227, 1) = Chr(31): v(227, 2) = " "
  4. v(228, 1) = Chr(30): v(228, 2) = " "
  5. v(229, 1) = Chr(29): v(229, 2) = " "
  6. v(230, 1) = Chr(28): v(230, 2) = " "
  7. v(231, 1) = Chr(27): v(231, 2) = " "
  8. v(232, 1) = Chr(26): v(232, 2) = " "
  9. v(233, 1) = Chr(25): v(233, 2) = " "
  10. v(234, 1) = Chr(24): v(234, 2) = " "
  11. v(235, 1) = Chr(23): v(235, 2) = " "
  12. v(236, 1) = Chr(22): v(236, 2) = " "
  13. v(237, 1) = Chr(21): v(237, 2) = " "
  14. v(238, 1) = Chr(20): v(238, 2) = " "
  15. v(239, 1) = Chr(19): v(239, 2) = " "
  16. v(240, 1) = Chr(18): v(240, 2) = " "
  17. v(241, 1) = Chr(17): v(241, 2) = " "
  18. v(242, 1) = Chr(16): v(242, 2) = " "
  19. v(243, 1) = Chr(15): v(243, 2) = " "
  20. v(244, 1) = Chr(14): v(244, 2) = " "
  21. v(245, 1) = Chr(13): v(245, 2) = " "
  22. v(246, 1) = Chr(12): v(246, 2) = " "
  23. v(247, 1) = Chr(11): v(247, 2) = " "
  24. v(248, 1) = Chr(10): v(248, 2) = " "
  25. v(249, 1) = Chr(9): v(249, 2) = " "
  26. v(250, 1) = Chr(8): v(250, 2) = " "
  27. v(251, 1) = Chr(7): v(251, 2) = " "
  28. v(252, 1) = Chr(6): v(252, 2) = " "
  29. v(253, 1) = Chr(5): v(253, 2) = " "
  30. v(254, 1) = Chr(4): v(254, 2) = " "
  31. v(255, 1) = Chr(3): v(255, 2) = " "
  32. v(256, 1) = Chr(2): v(256, 2) = " "
  33. v(257, 1) = Chr(1): v(257, 2) = " "
  34. v(258, 1) = Chr(0): v(258, 2) = " "
  35. v(259, 1) = Chr(160): v(259, 2) = Chr(39)
  36. For iRow = 2 To ActiveDocument.Tables(1).Rows.Count
  37. For f = 227 To 259
  38. Selection.Find.ClearFormatting
  39. If ActiveDocument.Tables(1).Columns(4).Cells(iRow).Range.Find.Execute(FindText:=v(f, 1)) = True Then
  40. ActiveDocument.Tables(1).Columns(4).Cells(iRow).Range.Text = Replace(ActiveDocument.Tables(1).Columns(4).Cells(iRow).Range.Text, v(f, 1), v(f, 2))
  41. MsgBox ("заменено" & v(f, 1))
  42. End If
  43. Next f
  44. MsgBox ("замена завершена")
  45. MsgBox (ActiveDocument.Tables(1).Columns(4).Cells(iRow)
  46. next iRow

Решение задачи: «Удаление невидимых символов chr(0)-chr(31) windows 1251 WORD»

textual
Листинг программы
  1. Public function iRep(asd as String) as String
  2. for i=0 to 31
  3. asd=Replace(asd,chr(i)," ") 'заменяем символы с 0 по 31
  4. next i
  5. asd=Replace(asd,chr(160),chr(39))' заменяем симол 160
  6. do While instr(1,asd,"  ")>0 'этот цикл убирает двойные тройные четверные и т.д  пробелы
  7. asd=Replace(asd,"  "," ")
  8. loop
  9. asd=Trim(asd)' обрезаем пробелы в начале и в конце текта
  10. if Right(asd,3)="..." Then asd=mid(asd,1,Len(asd)-3)' если в конце три точки обрезаем их
  11. iRep=asd
  12.  
  13. end function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы