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
VBA Excel:单元格值字符串串联无效_Vba_Excel - Fatal编程技术网

VBA Excel:单元格值字符串串联无效

VBA Excel:单元格值字符串串联无效,vba,excel,Vba,Excel,你能帮我解决以下问题吗。我所要做的就是在每个手机号码前加上0来清理一个列表。这是我的代码: Sub ListCleaner_CleanCellPhoneNumbers() Dim selectedRange As Range Set selectedRange = getSelectedRange() Dim i As Integer Dim max As Integer i = 1 max = selectedRange.Rows.Count While i <= max D

你能帮我解决以下问题吗。我所要做的就是在每个手机号码前加上0来清理一个列表。这是我的代码:

Sub ListCleaner_CleanCellPhoneNumbers()
Dim selectedRange As Range
Set selectedRange = getSelectedRange()

Dim i As Integer
Dim max As Integer
i = 1
max = selectedRange.Rows.Count

While i <= max
    Dim cell As Range
    Set cell = selectedRange.Cells(i)

    ' Get row number
    Dim rowNumber As Integer
    rowNumber = cell.Row

    ' Skip header
    If rowNumber > 1 Then
        If Mid(cell.Value, 1, 1) <> "0" Then
            cell.Value = "0" & cell.Value
        End If
    End If

    i = i + 1
Wend
我的问题在于行“cell.Value=0&cell.Value”。它只是不在前面添加0。如果我执行以下“cell.Value=0&Hello world”,它就可以正常工作。我还检查了单元格。值是否正确访问等

如有任何建议,将不胜感激。多谢各位

更新:
我不认为问题在于我在前面使用了0。我尝试使用其他数字和字符,所有格式都为文本等。仍然无法使用。

如果单元格是数字类型,它将删除开头的所有零。
如果单元格是文本类型,它应该可以工作。

我已经通过使用建议答案的组合解决了这个问题。感谢@vba4all和@dared的回复+一,

以下是我的解决方案:

cell.Value = "'0" & LTrim(cell.text)

我必须在0之前使用“a”,并使用cell.text而不是值。LTrim用于消除前导空格。

如果电话号码的长度始终相同,例如9个号码,则可以将NumberFormat更改为以下代码中的状态。它只会更改数字,因此您的标题是安全的:

Sub ListCleaner_CleanCellPhoneNumbers()

Dim selectedRange As Range
Set selectedRange = getSelectedRange()

        selectedRange.NumberFormat = "000000000"

End Sub