使用vba删除excel中的chr160字符

使用vba删除excel中的chr160字符,excel,vba,excel-2016,Excel,Vba,Excel 2016,在下面的代码中,我想删除文本字符串末尾的char160和34字符 For Column = 12 To 13 For i = 16 To last_row 'sString = ("=CODE(160)") 'Range(Cells(i, Column), Cells(i, Column)).Select 'Range(Cells(last_row + 1, Column), Cells(last_row + 1, Column)).Va

在下面的代码中,我想删除文本字符串末尾的
char160
34
字符

For Column = 12 To 13

    For i = 16 To last_row
        'sString = ("=CODE(160)")
        'Range(Cells(i, Column), Cells(i, Column)).Select
        'Range(Cells(last_row + 1, Column), Cells(last_row + 1, Column)).Value = Replace(Range(Cells(i, Column), Cells(i, Column)).Value, sString, "", 1, -1)

        Set current_cell = Range(Cells(i, Column), Cells(i, Column))
        current_cell.Select

        text_to_change = Range(Cells(i, Column), Cells(i, Column)).Value

        Range(Cells(last_row + 1, Column), Cells(last_row + 1, Column)).Select
        Selection.NumberFormat = "General"
        With Range(Cells(last_row + 1, Column), Cells(last_row + 1, Column))
        .Formula = "=SUBSTITUTE(" & text_to_change & ";CODE(160);" & Chr(34) & Chr(34) & ")"
        .Value = .Value
        End With

    Next i

Next Column
我在这行遇到一个错误:

.Formula=“=SUBSTITUTE(&text_to_change&“code(160);”&Chr(34)&Chr(34)&”)”

错误消息表明:

运行时错误“1004”:应用程序定义的错误或对象定义的错误


您能帮我这里出了什么问题吗?

您需要避开引号:

.Formula = "=SUBSTITUTE(""" & text_to_change & """;CODE(160);""" & Chr(34) & Chr(34) & """)"

为什么不使用:
.Replace Chr(160),“”,xlPart
?为什么不使用
.Value=Replace(Replace(.Value,Chr(160),vbNullString),Chr(34),vbNullString)
,并跳过
。公式
?(另外,
chr(160)
是不间断的空格-您是否也想要
Char(32)
,这是一个“正常”的空格?+1:这就是为什么“我的
。公式=
不起作用”的步骤1应该始终是交换
。公式=
用于
调试。打印
,并仔细阅读输出