Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 用于格式化电话号码的VBA脚本_Excel_Vba_Vbscript - Fatal编程技术网

Excel 用于格式化电话号码的VBA脚本

Excel 用于格式化电话号码的VBA脚本,excel,vba,vbscript,Excel,Vba,Vbscript,我正在尝试编写一个VBA脚本,以格式化存储在excel电子表格中的数千个电话号码的列表。到目前为止,我有这个,但当我运行它时,它不会格式化电话号码。如果单元格为空,它会添加NULL值,但不会格式化数字。有人看到我做错了什么吗 Sub CheckPhoneNumber() Dim retNumber As String Range("K3").Activate Do Until ActiveCell.Row = 3746 If ActiveCell.Value = "" Then Active

我正在尝试编写一个VBA脚本,以格式化存储在excel电子表格中的数千个电话号码的列表。到目前为止,我有这个,但当我运行它时,它不会格式化电话号码。如果单元格为空,它会添加NULL值,但不会格式化数字。有人看到我做错了什么吗

Sub CheckPhoneNumber()
Dim retNumber As String

Range("K3").Activate

Do Until ActiveCell.Row = 3746
If ActiveCell.Value = "" Then
ActiveCell.Value = "NULL"
Else
For i = 1 To Len(ActiveCell.Value)
    If Asc(Mid(ActiveCell.Value, i, 1)) >= Asc("0") And Asc(Mid(ActiveCell.Value, i, 1)) <= Asc("9") Then
        retNumber = retNumber + Mid(ActiveCell.Value, i, 1)
    End If
Next
If Len(retNumber) > 10 Then
    cleanPhoneNumber = Format(retNumber, "(+#) 000-000-0000")
Else
    cleanPhoneNumber = Format(retNumber, "000-000-0000")
End If
End If
ActiveCell.Offset(1, 0).Activate

Loop
End Sub
子检查电话号码()
将数字设置为字符串
范围(“K3”)。激活
直到ActiveCell.Row=3746为止
如果ActiveCell.Value=”“,则
ActiveCell.Value=“NULL”
其他的
对于i=1到Len(ActiveCell.Value)
如果Asc(Mid(ActiveCell.Value,i,1))>=Asc(“0”)和Asc(Mid(ActiveCell.Value,i,1))10,则
cleanPhoneNumber=格式(retNumber,“(+#)000-000-0000”)
其他的
cleanPhoneNumber=格式(retNumber,“000-000-0000”)
如果结束
如果结束
ActiveCell.Offset(1,0).激活
环
端接头

看起来你忘了把
cleanPhoneNumber
写回工作表了?在最后一个
结束if
之前,您需要一个
ActiveCell.Value=cleanPhoneNumber