Добрый вечер! Как заменить на отступ (табуляцию) все символы в ячейке до знака "/" (до слеша)? При этом если в ячейке несколько раз повторяется слеш, то нужно заменить текст на табуляцию до каждого слеша. То есть 3 раза повторяется "/", значит будет 3 отступа (табуляции). Текст после последнего слеша остается.
ПРИМЕРЫ. на входе (1 знак): МОТОЗАПЧАСТИ/Амортизаторы YSS на выходе (1 отступ): Амортизаторы YSS
на входе (3 знака): МОТОЗАПЧАСТИ/Замки цепи/- по размеру цепи/525 на выходе (3 отступа): 525
Скажите, правильно понял Вас - пробелы в формуле обозначаются как " "? Есть альтернативное решение в Numbers, где для табуляции имеется работающий символ.
Цитата
Sanja написал: Вам нужна именно табуляция или пробелы тоже подойдут?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intCount&
On Error Resume Next
If Target.Count = 1 Then
Application.ScreenUpdating = False
Application.EnableEvents = False
intCount = UBound(Split(Target, "/"))
With Target.Offset(, 2)
.Value = Split(Target, "/")(intCount)
.IndentLevel = intCount
End With
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Согласие есть продукт при полном непротивлении сторон
Если для визуализации в excel то только макросом, а вот если потом куда вставлять то можно вместо REPT(" ";4*(LEN(A1)-LEN(SUBSTITUTE(A1;"/";"")))) использовать REPT(char(9);LEN(A1)-LEN(SUBSTITUTE(A1;"/";""))) но отступы появятся только при копировании в блокнот например
БМВ написал: но отступы появятся только при копировании в блокнот например
Да, мне именно для вставки в блокнот дальнейшей. "Войну и мир" в 1-ом посте ветки не хотел писать... Но по факту визуализация в excel отступов мне не важна - важны отступы в TXT файле. Перевод формул как понимаю тут https://brusentsov.com/2009/12/27/3519 ?
Все отлично. Рабочий вариант формулы пишу ниже. Если у кого аналогичный вопрос будет - быстрое решение найдут. У меня только такой момент остался - при вставке в блокнот появляются кавычки - их как-то можно убрать? ...ну как бэ история не "мегакртичиная" - можно в режиме "система-нипель" порубить простой заменой в текстоовом файле. Но все же...
kazakboris написал: только такой момент остался - при вставке в блокнот появляются кавычки - их как-то можно убрать?
Все же по кавычкам вопрос... Как правильно убрать, чтобы при переносе данных в блокнот кавычек не было? Сейчас при копировании из excel и вставке в txt-файл блокнота появляются.
kazakboris написал: Как правильно убрать, чтобы при переносе данных в блокнот кавычек не было?
Наверно макросом удобнее - этот макрос обработает первый столбец выделенного диапазона и поместит результат в буфер обмена. Останется только переключиться на Блокнот (или др. программу) и нажать Ctrl+v. Выделять можно столбец целиком. Поместите макрос в личную книгу макросов, чтобы запускать при работе с любым файлом: https://www.planetaexcel.ru/techniques/3/5201/
Код
Sub Ka()
Dim v(), x, s$, d$()
v = Intersect(Selection.Columns(1), ActiveSheet.UsedRange).Value2
For Each x In v
d = Split(x, "/")
If UBound(d) > -1 Then
s = s & String$(UBound(d), vbTab) & d(UBound(d)) & vbCrLf
Else
s = s & vbCrLf
End If
Next
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 'DataObject
.SetText s
.PutInClipboard
End With
End Sub