将公式转换成VBA

有没有人知道如何将这个公式=RIGHT(C1,LEN(C1)-SEARCH(":",C1))转换成VBA语法? 我想在我的Excel C列中使用这个公式,每个单元格包含一个":" 。 我只是想删除":"之前的内容。

提前致谢!

一个简单的方法是打开macroslogging器,然后input你的公式。 然后你可以检查macros的结果。 您的问题主要是您需要在VBA中背靠背使用两个引号,以在公式栏中反映一个报价。

这就是说 – 为了避免R1C1风格,你会做Cells(1,1).Formula = "=RIGHT(C1,LEN(C1)-Search("":"",C1))"

你不会说你想要做什么的结果

用户定义函数= mid(c1,find(“:”,c1))

VBA = mid(范围(“C1”),instr(范围(“C1”),“:”))

Module声明一个函数

 Public Function RemoveBeforeColon(ByVal s As String) As String Dim i As Integer i = InStr(1, s, ":") If i > 0 Then RemoveBeforeColon = Mid(s, i + 1) Else RemoveBeforeColon = s End If End Function 

并使用它与一个string或范围

 Debug.Print RemoveBeforeColon("ABC:123") 

要么

 Debug.Print RemoveBeforeColon( Sheet1.Range("C1").Value2 )