Excel单元格自定义格式和文本

时间:2016-12-12 21:23:37

标签: excel format cell

我想更改以下内容

123456789A1

123-456-789 A1


背景:

在格式单元格中,我使用了这个:

000-0000-00 00

如果单元格中的所有内容都是数字,则可以使用

12345678911

将成为

123-4567-89 11

但是很快就会有一封信,它打破了它。 如何更改类型以忽略字母?

2 个答案:

答案 0 :(得分:0)

这是一个例子:

Sub test()

a = [A1]

b = Left(a, 3) & "-" & Mid(a, 4, 3) & "-" & Mid(a, 7, 3) & " " & Right(a, 2)

[A2] = b
End Sub

但是想要在第二个位置使用3个或4个数字吗?

如果A1 = 123456789A1,则A2:123-456-789 A1

答案 1 :(得分:0)

单元格编号格式仅适用于数字。

如果您不介意将值更改为文本字符串,可以使用Format函数在VBA中格式化它们。例如:

Option Explicit
Sub FMT()
    Dim R As Range, C As Range
    Const sFMT As String = "@@@-@@@@-@@ @@"

Set R = Intersect(Range("A:A"), ActiveSheet.UsedRange)

For Each C In R
    C.Value = Format(C.Text, sFMT)
Next C

End Sub

您需要更改范围参数以匹配您需要的参数。您还可以在事件触发的宏中使用它来自动执行此操作。