据称这是单个细胞A1的数据:
Score Remarks
1-10 25
25-38 jk
100-150 merry
我需要一个快捷方式,以便能够以某种方式对齐,使数据之间的间距均匀。
Score Remarks
1-10 25
25-38 jk
100-150 merry
我需要这样的。注意:不建议在中间使用空格键,如果数据很大怎么办?
答案1
尝试以下用户定义函数:
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 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=我的函数(A1)
要了解有关宏的更多信息,请参阅:
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使用类似字体导游:
答案2
数据 -> 文本到列听起来就是您想要的。不要试图将所有内容放在一个单元格中,而是将其分成几个单元格。