| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Программно заменить символ в ячейке |
| Автор: Izuver 13.8.2006, 20:27 |
| Как прооверить ячейку на наличие определенного символа и если он есть заменить его на другой. Текст из этой ячейки нужен потом для названия файла, а ему мешается (/ \ : и т.д.) |
| Автор: Дмит 13.8.2006, 21:56 |
| Range("A1").Replace ":", "_" |
| Автор: Izuver 13.8.2006, 22:17 | ||
то что надо |
| Автор: Izuver 28.8.2006, 23:05 |
| До того как что-ни-будь не нарушится. Либо вобще не меняет либо меняет все символы. Как заменить только те символы, какие нужно или можно справку по каждому из функции: Replace(What, Replacement, [LookAt], [SearchOrder], [MatchCase], [MatchByte], [MatchControlCharacters], [MatchDiacritics], [MatchKashida], [MatchAlefHamza]) Такая функция: Replace(expression, Find, Replacementwith[, Start[, Cout [, Compare]]]) не работает! |
| Автор: Дмит 30.8.2006, 20:45 | ||
знаете только Вы. Приведите код или полное описание задачи. Обратите внимание на то, что функции Range("A1").Replace и просто Replace не одно и тоже. |
| Автор: Izuver 2.9.2006, 23:47 | ||||
Заменить хочу символ "/" или "?" на " - " для создания папки или файла. |
| Автор: ИгнатьевАлексей 3.9.2006, 15:01 | ||
Странно! Я постоянно применяю эту очень удобную штуку.....Вот почитай справочку: 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. Дай тогда кусок кода, где она не работает. |
| Автор: Дмит 3.9.2006, 16:57 |
| Действительно в Range("A1").Replace "?", " - " знак вопроса воспринимается как знак любой один символ. Можно сделать так: Range("A1") = Replace(Range("A1"), "?", " - ") Но надо обращать внимание на параметр "compare" (если не задан в Replace, то может быть в Option Compare) |
| Автор: Izuver 4.9.2006, 17:11 |
| Не прет у меня это: 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 |