-1

Предположительно, это данные одной ячейки A1:

Score     Remarks
1-10     25
  25-38      jk
 100-150   merry

Мне нужен ярлык, где я могу выполнить Allign таким образом, чтобы интервал между данными был равномерным.

Score     Remarks
1-10      25
25-38     jk
100-150   merry 

Мне нужно это так ПРИМЕЧАНИЕ. Не предлагайте использовать пробелы между ними. Что делать, если данные огромны?

2 ответа2

2

Попробуйте следующую пользовательскую функцию:

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) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте материал и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закройте окно 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:

0

Данные -> Текст в столбцы - это то, что вам нужно. Не пытайтесь хранить все в одной ячейке, разделите ее на несколько ячеек.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .