VBA Excel:单元格值字符串串联无效
你能帮我解决以下问题吗。我所要做的就是在每个手机号码前加上0来清理一个列表。这是我的代码: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
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