将公式应用于所有使用的范围

Apply Formula To All Used Range

我得到一个

Type mismatch

每当我尝试 运行 这种语法时出错。基本上我想要做的就是将公式应用于整个使用范围的 A 列。我应该更改什么才能按要求执行?

Dim wSheet As Worksheet: Set wSheet = Sheets("Master")
Dim lr As Long: lr = wSheet.Cells(wSheet.Rows.Count, "A").End(xlUp).Row
Dim form

form = "=SUBSTITUTE(TRIM(D2),"-","")"

With w.sheet
    .Range("A2:A" & lr).FormulaR1C1 = form
End With

D2 是一个 xlA1 语法;不是 xlR1C1 语法。使用 RC[3] 为 D2 提供关系地址或使用 .Formula 和 xlA1 语法。您还需要在带引号的字符串中加倍引号。

With wSheet
    lr = .Cells(.Rows.Count, "D").End(xlUp).Row
    form = "=SUBSTITUTE(TRIM(D2),"" - "", TEXT(,))"
    .Range("A2:A" & lr).Formula = form
    form = "=SUBSTITUTE(TRIM(RC[3]),"" - "", TEXT(,))"
    .Range("A2:A" & lr).FormulaR1C1 = form
End With

顺便说一句,TEXT(,)"" 相同。