2017-04-22 95 views
1

我得到一个套用公式所有使用范围

类型不匹配

错误,每当我尝试运行此语法。基本上我想要做的就是将公式应用到整个使用范围的列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 

回答

1

D2是xlA1 sytax;不是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(,)相同""

+0

使用'TEXT(,)'而不是''“'有没有优势? – YowE3K

+0

你不必输入'“”“”'我发现只是混淆了事情。 – Jeeped

+0

我想这是一个很好的理由。 :d – YowE3K