Попробуйте следующую пользовательскую функцию:
Public Function PrettyOutput(sIN As String) As String
Dim hr As String, i As Long, maxL As Long
Dim U As Long
hr = Chr(10)
If InStr(1, sIN, hr) = 0 Then
PrettyOutput = sIN
Exit Function
End If
ary = Split(sIN, hr)
U = UBound(ary)
For i = 0 To U
ary(i) = Application.WorksheetFunction.Trim(ary(i))
Next i
maxL = 0
For i = 0 To U
bry = Split(ary(i), " ")
If Len(bry(0)) > maxL Then maxL = Len(bry(0))
Next i
For i = 0 To U
bry = Split(ary(i), " ")
PrettyOutput = PrettyOutput & bry(0) & Application.WorksheetFunction.Rept(" ", maxL - Len(bry(0))) & " " & bry(1) & hr
Next i
PrettyOutput = Mid(PrettyOutput, 1, Len(PrettyOutput) - 1)
End Function
Пользовательские функции (UDF) очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте материал и закройте окно VBE
Если вы сохраните книгу, UDF будет сохранен вместе с ней.
Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить UDF:
- откройте окно VBE, как указано выше
- очистить код
- закройте окно VBE
Чтобы использовать UDF из Excel:
= MyFunction (А1)
Чтобы узнать больше о макросах в целом, смотрите:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
а также
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
а подробности о UDF смотрите в:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Макросы должны быть включены, чтобы это работало!
Итак, с данными в A1, в B1 введите:
=PrettyOutput(A1)
и формат B1 с помощью шрифта, такого как Courier: