Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программно заменить символ в ячейке 
:(
    Опции темы
Izuver
Дата 13.8.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Как прооверить ячейку на наличие определенного символа и если он есть заменить его на другой.
Текст из этой ячейки нужен потом для названия файла, а ему мешается (/ \ : и т.д.)
PM MAIL ICQ   Вверх
Дмит
Дата 13.8.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 21.4.2006
Где: г.Волгоград

Репутация: 8
Всего: 9



Range("A1").Replace ":", "_"
PM MAIL WWW   Вверх
Izuver
Дата 13.8.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Дмит @ 13.8.2006,  21:56)
Range("A1").Replace ":", "_"

то что надо
PM MAIL ICQ   Вверх
Izuver
Дата 28.8.2006, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



До того как что-ни-будь не нарушится. Либо вобще не меняет либо меняет все символы.
Как заменить только те символы, какие нужно или можно справку по каждому из функции:

Replace(What, Replacement, [LookAt], [SearchOrder], [MatchCase], [MatchByte], [MatchControlCharacters], [MatchDiacritics], [MatchKashida], [MatchAlefHamza])

Такая функция:

Replace(expression, Find, Replacementwith[, Start[, Cout [, Compare]]])

не работает!
PM MAIL ICQ   Вверх
Дмит
Дата 30.8.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 21.4.2006
Где: г.Волгоград

Репутация: 8
Всего: 9



Цитата

какие нужно 

знаете только Вы. Приведите код или полное описание задачи. 

Обратите внимание на то, что функции Range("A1").Replace и просто Replace не одно и тоже.
PM MAIL WWW   Вверх
Izuver
Дата 2.9.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Дмит @ 30.8.2006,  20:45)
Цитата

какие нужно 

знаете только Вы. Приведите код или полное описание задачи. 

Обратите внимание на то, что функции Range("A1").Replace и просто Replace не одно и тоже.

Заменить хочу символ "/" или "?" на " - " для создания папки или файла.
PM MAIL ICQ   Вверх
ИгнатьевАлексей
Дата 3.9.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: 2
Всего: 3



Цитата

Такая функция:

Replace(expression, Find, Replacementwith[, Start[, Cout [, Compare]]])

не работает! 

Странно! Я постоянно применяю эту очень удобную штуку.....Вот почитай справочку:
Replace Function
      
Description

Returns a string in which a specified substring has been replaced with another substring a specified number of times.

Syntax

Replace(expression, find, replace[, start[, count[, compare]]])

The Replace function syntax has these named arguments:

Part Description 
expression Required. String expression containing substring to replace. 
find Required. Substring being searched for. 
replace Required. Replacement substring. 
start Optional. Position within expression where substring search is to begin. If omitted, 1 is assumed. 
count Optional. Number of substring substitutions to perform. If omitted, the default value is –1, which means make all possible substitutions. 
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values. 



Settings

The compare argument can have the following values:

Constant Value Description 
vbUseCompareOption –1 Performs a comparison using the setting of the Option Compare statement. 
vbBinaryCompare 0 Performs a binary comparison. 
vbTextCompare 1 Performs a textual comparison. 
vbDatabaseCompare 2 Microsoft Access only. Performs a comparison based on information in your database. 



Return Values

Replace returns the following values:

If Replace returns 
expression is zero-length Zero-length string ("") 
expression is Null An error. 
find is zero-length Copy of expression. 
replace is zero-length Copy of expression with all occurences of find removed. 
start > Len(expression) Zero-length string. 
count is 0 Copy of expression. 



Remarks

The return value of the Replace function is a string, with substitutions made, that begins at the position specified by start and and concludes at the end of the expression string. It is not a copy of the original string from start to finish.


Дай тогда кусок кода, где она не работает.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Дмит
Дата 3.9.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 21.4.2006
Где: г.Волгоград

Репутация: 8
Всего: 9



Действительно в Range("A1").Replace "?", " - " знак вопроса воспринимается как знак любой один символ.
Можно сделать так: Range("A1") = Replace(Range("A1"), "?", " - ")
Но надо обращать внимание на параметр "compare" (если не задан в Replace, то может быть в Option Compare)
PM MAIL WWW   Вверх
Izuver
Дата 4.9.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Не прет у меня это:
Replace(expression, find, replace[, start[, count[, compare]]])

на крайняк бу ду обходится таким кодом:
Sub MyReplace()
For i = 1 To Len(ActiveCell)
v = Mid(ActiveCell, i, 1)
If Mid(ActiveCell, i, 1) = "/" Or Mid(ActiveCell, i, 1) = "\" Then
v = " - "
ElseIf Mid(ActiveCell, i, 1) = "?" Then
v = "_"
End If
S = S + v
Next i
ActiveCell = S
End Sub
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.