
У меня есть некоторые данные, записанные через дефис, например:
A
1| 2-8
2| 0-12345
3| 15-123
4| and so on
Как выровнять содержимое в Word или Excel так, чтобы дефис находился по центру?
решение1
Решение для Excel
Предположим, вы говорите о центрировании текста внутриодин столбец(и не ряд)
Вы можете использовать VBA, чтобы выполнить 3 шага одним щелчком мыши
- Установите для ячеек шрифт с фиксированной шириной, напримерКонсолас
- Центрируйте свои клетки
- Добавляйте пробелы в начале или в конце строки, пока дефис не будет расположен по центру.
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, поскольку добавляет дополнительные пробелы.
решение2
В Word я добился чего-то похожего с помощью табуляции. Например, я хотел выровнять ряд строк по символу умножения. Для этого я установил табуляцию с выравниванием по правому краю на 2 см, табуляцию с выравниванием по центру на 2,25 см и табуляцию с выравниванием по левому краю на 2,5 см. Тогда текст в каждой строке выглядел так:
ВКЛАДКА"первый текст"ВКЛАДКА×ВКЛАДКА"второй текст"
решение3
Вы можете поместить формулы в столбцы B и C, которые разделят значения столбца A на левую и правую стороны дефиса. Например, используя ваш пример, left()
поместите «2» в B1 и right()
поместите «-32» в C1. Затем выровняйте столбец B по правому краю, столбец C по левому краю и скройте столбец A.