Excel VBA - 如何将单元格中的函数传输/翻译成 VBA 代码

问题描述

我目前拥有的细胞功能

=IFERROR(IF(LEN(A2)<2,LEFT(A2,2) &MID(A2,FIND(" ",A2,1)+1,3) &1000,4) &MID(A2,3) &1000),4)&"1000") 

我想为此创建一个 VBA 代码,以便当我运行它时,它会自动在范围 A2:A140 上执行此功能,并在 B2:B140 中生成输出并突出显示所有重复项。

Excel Sheet Pic

解决方法

这应该有效

Sub transform()

  Range("B2:B140").Formula = "=IFERROR(IF(LEN(A2)<2,LEFT(A2,2) &MID(A2,FIND("" "",A2,1)+1,3) &1000,4) &MID(A2,3) &1000),4)& ""1000"")"
  
End Sub

编辑: 公式被复制到所有单元格 enter image description here

编辑 2:使用 SUBSTITUTE 删除空格

 Sub transform()
   Range("B2:B140").Formula = "=SUBSTITUTE(IFERROR(IF(LEN(A2)<2,4)& ""1000""),"" "","""")"
   
 End Sub