Страницы: 1
RSS
Удаление редких символов в VBA
 
Добрый день!  
Как в VBA удалит все ö, ü и прочие подобные символы в диапазоне?  
Кодсимв присваивает им код 63, т.е. "?".  
Спасибо.
 
ö, ü - это o и u только с 2 точками наверху, как ё.
 
Наверное не только 63, но и какой-то еще, раз символы разные.  
Вот для 63:  
   Range("A1:D10").Replace What:=Chr(63), Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=29.12.2009 08:10}{thema=}{post}Наверное не только 63, но и какой-то еще, раз символы разные.  
Вот для 63:  
   Range("A1:D10").Replace What:=Chr(63), Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False{/post}{/quote}  
 
Таким образом он удалит вообще все символы в диапазоне.    
Если есть какой-то ещё, где можно узнать номер?)
 
Разве не все требуется удалить?    
*задумчиво перечитывает первый пост*  
Узнать номер той же функцией кодсимв. Она для разных символов разный код возвращает
Bite my shiny metal ass!      
 
{quote}{login=}{date=29.12.2009 08:26}{thema=Re: }{post}{quote}{login=Лузер™}{date=29.12.2009 08:10}{thema=}{post}Наверное не только 63, но и какой-то еще, раз символы разные.  
Вот для 63:  
   Range("A1:D10").Replace What:=Chr(63), Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False{/post}{/quote}  
 
Таким образом он удалит вообще все символы в диапазоне.    
Если есть какой-то ещё, где можно узнать номер?){/post}{/quote}
 
{quote}{login=Лузер™}{date=29.12.2009 11:03}{thema=}{post}Разве не все требуется удалить?    
*задумчиво перечитывает первый пост*  
Узнать номер той же функцией кодсимв. Она для разных символов разный код возвращает{/post}{/quote}  
 
в том то и дело что возвращает одинаковый код для целой категории символов из иностранных алфавитов - 63
 
{quote}{login=тухачевский}{date=29.12.2009 11:34}{thema=Re: Re: }{post}{quote}{login=}{date=29.12.2009 08:26}{thema=Re: }{post}{quote}{login=Лузер™}{date=29.12.2009 08:10}{thema=}{post}Наверное не только 63, но и какой-то еще, раз символы разные.  
Вот для 63:  
   Range("A1:D10").Replace What:=Chr(63), Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False{/post}{/quote}  
 
Таким образом он удалит вообще все символы в диапазоне.    
Если есть какой-то ещё, где можно узнать номер?){/post}{/quote}{/post}{/quote}  
 
Пробовал и эти цифры подставлять, их возвращает функция asc, но на деле замещения не происходит, может что не так делаю, покажите на примере плиз, буду преблагодарен))
 
{quote}{login=}{date=30.12.2009 12:07}{thema=Re: Re: Re: }{post}покажите на примере плиз, буду преблагодарен)){/post}{/quote}Где пример?  
 
На самом деле есть еще AscW, AscB, ChrW, ChrB  
можно и ячейку с символом мподставлять для замены, только удаляет больше символов. в примере запустить bb()
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=30.12.2009 11:52}{thema=Re: Re: Re: Re: }{post}{quote}{login=}{date=30.12.2009 12:07}{thema=Re: Re: Re: }{post}покажите на примере плиз, буду преблагодарен)){/post}{/quote}Где пример?  
 
На самом деле есть еще AscW, AscB, ChrW, ChrB  
можно и ячейку с символом мподставлять для замены, только удаляет больше символов. в примере запустить bb(){/post}{/quote}  
 
Решил с помощью ChrW, спасибо за помощь
 
Эта тема с 2009 года оставалась без чёткого ответа.    
Т.к. мне сегодня помог разобраться с подобным вопросом KukLP в теме http://www.planetaexcel.ru/forum.php?thread_id=35785  
привожу его ответ  
 
Для правильного определения кода данного символа нужно воспользоваться кодом  
 
MsgBox "Код данного символа: " & AscW([A1]), , ""
 
где в А1 должен быть этот некорректный символ (только он один)  
 
Ну, а теперь, зная его код, заменяем его на нужный нам символ или вообще удаляем  
 
Sub www()  
Selection.Replace ChrW(-162), ""  
End Sub  
 
где код "-162" - код, определённый в MsgBox AscW([A1]), у вас он может быть другим.
 
{quote}{login=Ежик}{date=22.12.2011 01:56}{thema=}{post}  
где в А1 должен быть этот некорректный символ (только он один){/post}{/quote}Необязательно. Надо, чтоб этот символ был первым.
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Наверх