EXCEL中如何输入19位银行帐号时每四个自动空一空格?

2024年11月18日 15:23
有5个网友回答
网友(1):

首先说明一点,因为你的数字超出了15位,是不能通过自定义格式设置的,否则第15位后面的数字全变为0。你这个问题必须用VBA代码解决。

以设置B2至B30这个区域为例:

【第一步】:

选中B2至B30,右键设置单元格格式,设置为文本格式,否则无法输入超出15位的数字。

图一:

【第二步】:

图二:

箭头有点乱,仔细看着对照着图看我的说明:

点顶部的“开发工具”---点“VisualBasic”打开VB编辑器,

然后点你要设置的工作表名,

然后点下拉箭头,选择“Worksheet”

然后点另一个下拉箭头,选择“Change”

最后输入我画蓝框中的代码,即可完成,

最后。按CTRL+S保存,关闭VB编辑器。

【最后请看效果图】:

B2至B30区域中,数据发生变化的单元格必须符合19位时,就会自动分隔。

【为方便你复制,贴出代码如下】

Private Sub Worksheet_Change(ByVal Target As Range)
    '以下三行绿字中提示的参数,你有可能需要根据实际情况调整。
    x = Target.Row
    y = Target.Column
    If x >= 2 And x <= 30 And y = 2 Then '提示:x >= 2和x <= 30指第2至第30行、y = 2指第2列(即B列)
        If Len(Cells(x, y)) = 19 Then '提示:19指字符数量,该区域有数据更新的单元格必须符合19位时自动进行以下操作
            Cells(x, y) = Evaluate("MID(B" & x & ",1,4)&"" ""&MID(B" & x & ",5,4)&"" ""&MID(B" & x & ",9,4)&"" ""&MID(B" & x & ",13,4)&"" ""&MID(B" & x & ",17,3)") '提示:此行五个B是指列号
        End If
    End If
End Sub

网友(2):

先设置单元格格式然后再输入数字。

或者先设置文本再设置格式然后转化为数字。

*之所以这样操作是为了避免数字后面数字自动转化为0。

数字格式->自定义->设置格式为

0000 0000 0000 0000 000

网友(3):

=MID(A1,1,4)&" "&MID(A1,5,4)&" "&MID(A1,9,4)&" "&MID(A1,13,4)&" "&MID(A1,17,3)
把其中的A1换成相应单元格即可。

网友(4):

如果量不大,自己敲个空格,问题不就解决了!!!如果量大,可用VB代码解决!

网友(5):

Sub 转格式()
    Dim arrValue()
    ReDim arrValue(Len(ActiveCell.Value))
    
    ActiveCell.NumberFormatLocal = "@"
    If InStr(ActiveCell.Value, " ") = 0 And ActiveCell.Column = 2 Then '说明已转换过或不在当前列(假设第二列)
        For i = 1 To Len(ActiveCell.Value)
            arrValue(i) = Mid(ActiveCell.Value, i, 1)
        Next
        ActiveCell.Value = ""
        For i = 1 To UBound(arrValue)
            ActiveCell.Value = ActiveCell.Value & arrValue(i)
            If i Mod 4 = 0 Then
                ActiveCell.Value = ActiveCell.Value & " "
            End If
        Next
    End If
    
End Sub