首页 > 解决方案 > 如果左则替换

问题描述

我正在寻找可以执行此操作的代码如果 C 列中的单元格以 41 开头,则替换为 '41 ,依此类推。

我正在尝试下面的代码,但它只会从第二个实例替换为最后一个 IMEI,这就是为什么我正在寻找一个代码来更新单元格中的第一个 IMEI。顺便说一句,在我的单元格中有多个用逗号分隔的 IMEI。谢谢您的帮助。

Dim Rng As Range

        Set Rng = ActiveCell
        Cells.Replace What:=",41", Replacement:=",'41", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

我期望的输出

419123234456,419123133214,419938475433是,'419123234456,'419123133214,'419938475433但实际输出是419123234456,'419123133214,'419938475433,第一个 IMEI 会将最后一位数字转换为零。

标签: excelvba

解决方案


如果任何单元格中最左边的字符是该'字符,则 Excel 将不会显示(除了在公式栏中)或打印该字符,并将其后面的任何内容视为纯文本。

例如,它允许某人在以连字符开头的单元格中输入字符串,而 Excel 不会将其视为公式。它也常用于强制带前导零的数字正确显示。

要获得所需的结果,您需要在单元格前面加上 a '然后 '419...您的单元格公式将如下所示:

''419123234456,'419123133214,'419938475433

但会在屏幕上显示为:

'419123234456,'419123133214,'419938475433

但是,当您阅读/测试单元格内容时,如果您向 Excel 询问最左边的 3 个字符

left(range("A1"),3)

结果是'41而不是''4


推荐阅读