将带有字符串函数的公式转换为 VBA 等效项

Convert formula with string function into a VBA equivalent

我想将带有字符串函数的 Excel 公式转换为 VBA 等价物。

有几行公式。我举两个例子。

A 列中有一份 txt 报告的副本。B 至 O 列对 A 的行进行排序,使用以下一些公式挑选部分:

=IF(MID(A6,60,1)="=",MID(A6,52,15),IF(MID(A6,57,1)="=",MID(A6,53,8),C1))

=IF(A2="","-",IF(LEFT(A2,1)="1","pg","-"))

这是测试报告的快照。

我想遍历公式并从 A2 开始发送到 Sheet2(由于 headers),而不是通过复制然后粘贴到 A1、复制 B 列到 O 列,然后整理“-”。

我尝试录制一个宏并输入公式,但无法实现。

Sub convert()
Dim ws As Worksheet, thisRng As Range
Set ws = Sheet1
Set thisRng = Sheet1.Range("B1")' Select the cell to place data into

'   Break up the formula logically first and it becomes easier to convert
'   =IF (MID(A6,60,1)="=",     MID(A6,52,15),    else if IF(MID(A6,57,1)="=",     MID(A6,53,8),        else    C1))
If Mid(ws.Range("A6").Value, 60, 1) = "=" Then
    thisRng = Mid(ws.Range("A6").Value, 52, 15)
    Else
        If (Mid(ws.Range("A6").Value, 57, 1)) = "=" Then
            thisRng = Mid(ws.Range("A6").Value, 53, 8)
        Else
            thisRng.Value = ws.Range("C1").Value
        End If
End If

End Sub