📜  如何在excel中删除零 - VBA(1)

📅  最后修改于: 2023-12-03 15:08:53.134000             🧑  作者: Mango

如何在Excel中删除零 - VBA

在Excel中,经常会遇到需要删除数值前面的零的情况。手动删除显然十分麻烦,但是通过VBA编写宏可以轻松地解决这个问题。

方法一:使用VBA的函数Trim

VBA中自带了函数Trim,可以删除字符串首尾的空格以及其他需要删除的字符。在这里,我们可以利用这个函数来删除数值前面的零。代码如下:

Sub DeleteLeadingZerosWithTrim()
    Dim cel As Range
    For Each cel In Selection
        cel.Value = Trim(cel.Value)
    Next cel
End Sub

操作步骤:

  1. 在Excel中选择需要删除零的数据列;
  2. 按下快捷键 ALT + F11 进入VBA编辑器;
  3. 在左侧“项目资源管理器”窗口中找到当前工作簿,右键点击“插入”->“模块”;
  4. 在新建的模块中输入以上代码;
  5. 在代码窗口中直接按F5或者手动从菜单栏中选择“运行”->“运行子程序”,即可运行宏;
  6. 回到Excel表格中,所选列中的数据前导零已经被删除。

需要注意的是,该方法只能删除数值前面连续的零,并不能删除数值中间或者结尾的零。

方法二:使用VBA的功能函数Str

除了使用VBA自带函数Trim,我们还可以使用功能函数Str来实现删除数值前面的零。相比于Trim函数,Str函数可以保留数值的小数点和分数线。在这里,我们同样可以使用循环来批量删除数值前面的零。代码如下:

Sub DeleteLeadingZerosWithStr()
    Dim cel As Range
    For Each cel In Selection
        cel.Value = CDbl(cel.Value)
    Next cel
End Sub

操作步骤:

  1. 在Excel中选择需要删除零的数据列;
  2. 依照上面的步骤,进入VBA编辑器;
  3. 在新建的模块中输入以上代码;
  4. 需要注意的是,使用Str函数的前提条件是数值之前没有空格。如果选择的区域中存在数值之前有空格的情况,需要先使用Trim函数进行清除;
  5. 回到Excel表格中,所选列中的数据前导零已经被删除。
总结

以上两种方法都是利用VBA编写宏实现批量删除数值前面的零。需要注意的是,选择的区域一定要是数值类型,不能是字符串;同时,使用Str函数进行删除时,需要注意空格的问题。