Макрос работы со строками в Excel

Valeryk

Нужен макрос, который считает строку до определенного символа. В моем случае "/". И скопирует это в новую строку. Либо просто удалит то, что есть дальше.
Нашел макрос, который сччитывает досимвола с 16 кеглем и ставит после него звездочку.
Подозреваю, что что-то похожее.
[/code]
Sub Test

Application.Browser.Previous '::: В начало документа...

For i% = 1 To Len(ThisDocument.Range.Text) '::: посимвольно...

Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend

If Selection.Font.Size = 16 Then '::: Нашли символ шрифта 16

Selection.MoveRight Unit:=wdCharacter, Count:=1 '::: Сброс отметки

Selection.TypeText Text:="*" '::: вставка звезды

Else

Selection.MoveRight Unit:=wdCharacter, Count:=1

End If

Next i%

End Sub
[/code]

Zatto-1

а тебе именно макрос нужен? кнопачка "Text to Columns" не подходит что ли (с последующим транспонированием)?

sandish

Берется строка из ячейки (i, 5 удаляется все после ; и записывается в ячейку (i,6)
dim s as string
s = r.Cells(i, 5).Value
m = Len(s)
For j = 1 To m
v = Right(s1, 1)
s1 = Left(s, m - j)
If v = ";" Then
s = s1
Exit For
End If
Next
.Cells(i, 6).Value = s

kastodr33

какой нахер макрос
CTRL+F заменить "/*" на пустое поле

kastodr33

и если исходный текст надо сохранить то тоже проще написать формулу
=ЛЕВСИМВ(A1;НАЙТИ("/";A1)-1)
вообще многие люди норовят написать макрос там где это совершенно не нужно, в то время как эксель это инструмент для быстрой и удобной обработки данных встроенными средствами.

Valeryk

мне не нужно заменить на пустое поле, мне нужно оставить только ту часть, которая до этого символа. Причем вторая часть у всех строк разная. Да и первая собственно тоже.

kastodr33

оба указанных мной варианта делают именно то что ты просишь
попробовать не осилил?

заменит только сам слеш и то что после него (* - обозначает произвольную последовательность символов)
то что до слеша оставит

CHICAGO

макрос не нужен, простая формула: =LEFT(A1;FIND("/";A1)-1) — делает то, что тебе нужно

kastodr33

еще проще через автозамену, как я выше указал
Оставить комментарий
Имя или ник:
Комментарий: