У меня есть некоторые переносы данных, как это:
A
1| 2-8
2| 0-12345
3| 15-123
4| and so on
Как выровнять содержимое в слове или в Excel, чтобы дефис находился в центре?
У меня есть некоторые переносы данных, как это:
A
1| 2-8
2| 0-12345
3| 15-123
4| and so on
Как выровнять содержимое в слове или в Excel, чтобы дефис находился в центре?
В Word я достиг чего-то похожего, используя вкладки. Например, я хотел, чтобы ряд строк был выровнен по символу умножения. Для этого я поместил язычок с выравниванием по правому краю на 2 см, язычок с выравниванием по центру на 2,25 см и язычок с выравниванием по левому краю на 2,5 см. Тогда текст в каждой строке выглядел так:
TAB "первый текст" TAB × TAB "второй текст"
Предполагая, что вы говорите о центрировании текста в пределах одного столбца (а не строки)
Sub CenterHyphenatedContent()
For Each cell In UsedRange
If InStr(cell.Value, "-") > 0 Then
cell.Font.Name = "Consolas"
cell.HorizontalAlignment = xlCenter
intLenLeft = InStrRev(cell.Value, "-") - 1
intLenRight = Len(cell) - InStr(cell.Value, "-")
intDiff = Abs(intLenLeft - intLenRight)
If intLenLeft > intLenRight Then cell.Value = cell.Value & Space(intDiff)
If intLenLeft < intLenRight Then cell.Value = Space(intDiff) & cell.Value
End If
Next
End Sub
Внимание: этот код изменяет ваши данные Excel, так как он добавляет дополнительные пробелы
Вы можете поместить формулы в столбцы B и C, которые разделяют значения столбца A на левую и правую стороны дефиса. Например, используя ваш пример, используйте left()
чтобы поместить "2" в B1, и right()
чтобы поместить «-32» в C1. Затем выровняйте по правому краю столбец B, по левому краю столбец C и скройте столбец A.