如何使用VBA调用Excel公式

hgqdbh6s  于 2023-01-18  发布在  其他
关注(0)|答案(2)|浏览(240)

我正在使用下面提到的公式来过滤掉单元格中不需要的文本。我想通过VBA使用这个公式,我已经尝试了一些方法,包括子公式_属性和录制宏,但没有成功。
公式如下:

=LEFT(A3,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A3 & "1234567890"))-1)

主数据在Sheet1的列A2:A5000中可用,我希望将过滤后的文本(结果)放在Sheet3的列B2:B5000中。
无论如何,我可以自动化这使用VBA,这将是对我很有帮助。
谢谢

pcww981p

pcww981p1#

分析第一个数字的左侧

Sub ParseLeftOfDigit()
    
    Dim Data(): Data = Sheet1.Range("A2:A5000").Value
    
    Dim r As Long, n As Long, rStr As String
    
    For r = 1 To UBound(Data, 1)
        rStr = CStr(Data(r, 1))
        For n = 1 To Len(rStr)
            If Mid(rStr, n, 1) Like "#" Then
                Data(r, 1) = Mid(rStr, 1, n - 1)
                Exit For
            End If
        Next n
    Next r
    
    Sheet3.Range("B2:B5000").Value = Data

End Sub
qfe3c7zg

qfe3c7zg2#

此宏将把该公式应用于您希望的范围。

Sub Filter_Text_Formula()
Sheets("Sheet3").Range("B2:B5000").FormulaR1C1 = "=LEFT(Sheet1!RC[-1],MIN(FIND({1,2,3,4,5,6,7,8,9,0},Sheet1!RC[-1] & ""1234567890""))-1)"
End Sub

相关问题