Страница 1 из 1

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

Добавлено: 09 фев 2007, 00:52
tolikt
Непосредственно для листа есть метод 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)

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

Добавлено: 09 фев 2007, 02:02
Aent
Так так и называется функция 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 ;)

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

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

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

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

или дело в Excel 97?

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

Добавлено: 10 фев 2007, 21:45
Pavel55
Всё работает в Excel XP и Excel 2007

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

Sub Макрос1()
    OldStr = "QWERQWER"
    NewStr = Replace(OldStr, "Q", "Z")
    MsgBox NewStr
End Sub

What hosting to choose?

Добавлено: 15 окт 2015, 05:06
GeorgeSoca
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