我正在尝试用vlookup函数替换某些单元格。
Columns("R").Select
Columns("R").Replace What:="N/A", _
Replacement:="=VLOOKUP(RC[-15], [test.xls]test_data'!$C:$R , 16, FALSE)", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
上面的当前代码不会用vlookup替换N / A.它只是保持细胞不变。
如果我删除了" ="在括号中,所以它看起来像这样:
Replacement:="VLOOKUP(RC[-15], [test.xls]test_data'!$C:$R , 16, FALSE)"
这确实取代了我的细胞,但不会采用公式格式。
有人可以帮忙吗?
谢谢,
答案 0 :(得分:0)
您的公式存在一些问题,导致Excel无法实际接受它。您正在尝试使用
=VLOOKUP(RC[-15], [test.xls]test_data'!$C:$R , 16, FALSE)
但那
[test.xls]test_data'
应为'[test.xls]test_data'
,RC[-15]
)和A1表示法($C:$R
)您打算使用的公式可能是
=VLOOKUP(RC[-15], '[test.xls]test_data'!C3:C18 , 16, FALSE)
所以你可能意味着你的代码要说
Columns("R").Select
Columns("R").Replace What:="N/A", _
Replacement:="=VLOOKUP(RC[-15], '[test.xls]test_data'!C3:C18, 16, FALSE)", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
现在,如果设置了Excel设置以便使用R1C1表示法作为默认设置,那么对公式的更正可能就是您必须更改的所有内容。
但是,如果您使用A1表示法作为默认值,则由于C3:C18
对使用的表示法不明确,该公式将无法正确解释。
因此,您可能需要暂时将Excel设置为使用R1C1表示法:
Application.ReferenceStyle = xlR1C1
Columns("R").Select
Columns("R").Replace What:="N/A", _
Replacement:="=VLOOKUP(RC[-15], '[test.xls]test_data'!C3:C18, 16, FALSE)", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Application.ReferenceStyle = xlA1