Есть ли функция VBA - аналог метода Replace?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
tolikt
Сообщения: 93
Зарегистрирован: 29 окт 2005, 12:33
Откуда: NewVasюbirsk

09 фев 2007, 00:52

Непосредственно для листа есть метод Replace. В коде VBA его не могу применить к переменной, а только к Range.
В коде VBA есть строковая переменная. Как в ней заменить некий символ (группу символов) на другой (другую группу символов)? Есть ли простая функция - аналог Replace? Чтобы не городить процедуру с посимвольным поиском и заменой?
Т.е., вместо

Код: Выделить всё

Dim MyString As String
Dim ReplWhat As String
Dim ReplInto  As String
MyString = "с 01/01/07 по 31/01/07"
ReplWhat = "/"
ReplInto = "."
While InStr(1, MyString, ReplWhat) > 0
Mid(MyString, InStr(1, MyString, ReplWhat), Len(ReplWhat)) = ReplInto
Wend
хотелось бы что-то типа

Код: Выделить всё

Dim ReplWhat As String
Dim ReplInto  As String
MyString = "с 01/01/07 по 31/01/07"
ReplWhat = "/"
ReplInto = "."
MyString=ReplaceFunction(Where:=MyString, What:=ReplWhat, Replacement:=ReplInto)
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

09 фев 2007, 02:02

Так так и называется функция VBA Replace ;)
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.
RTFM ;)
tolikt
Сообщения: 93
Зарегистрирован: 29 окт 2005, 12:33
Откуда: NewVasюbirsk

10 фев 2007, 21:19

Цитата:
....{чё-то не по-русски}....
RTFM
Однако в RTFM ничего не нашёл.
Нельзя ли подробней пример функции?
Просто в виде типа:

Код: Выделить всё

OldStr="QWERQWER"
NewStr=Replace(OldStr,"Q","Z")
выскакивает ошибка на Replace: "Ошибка компиляции" - "Процедура Sub или Function не определена"
Как конкретно правильно написать?

или дело в Excel 97?
Pavel55
Сообщения: 405
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

10 фев 2007, 21:45

Всё работает в Excel XP и Excel 2007

Код: Выделить всё

Sub Макрос1()
    OldStr = "QWERQWER"
    NewStr = Replace(OldStr, "Q", "Z")
    MsgBox NewStr
End Sub
GeorgeSoca
Сообщения: 0
Зарегистрирован: 12 окт 2015, 04:09
Откуда: Guam
Контактная информация:

15 окт 2015, 05:06

Pa vart webbhotell kan ni kanna er trygg! Forutom att vi anvander oss av speglade harddiskar pa alla vara servrar sa tar vi aven backup tva ganger per dygn pa separata servrar. Vi anvander oss av ISPmanager som kontrollpanel. ISPmanager ar en kontrollpanel som gor det enkelt att administrera sin hemsida. Hos oss kan ni lagga hur manga hemsidor och domaner ni onskar under ett webbhotellskonto.
virtual hosting
Ответить