Value_If_True的字符串变量返回Worksheet中的行范围

时间:2016-06-15 20:55:01

标签: excel vba excel-vba

我正在尝试在IF(And()公式中使用R1C1构造来填充大范围的单元格。为此,我创建了一个循环,为公式的Value_if_True部分创建一个字符串变量,但是当公式运行时,单元格列出一个范围而不是变量的内容

v = 1
cs = 71
ce = 87
For c = cs To ce Step 2
    r = "R" & v
    drop.Range(Cells(8, c), Cells(LR, c)).FormulaR1C1 = "=IF(AND(RC3>=RC[-18],RC3<=RC[-17])," & r & ","""")"
    v = v + 1
Next

我将子变量顶部的变量声明(r是一个字符串)。这是在我运行宏之后单元格显示的内容:

=IF(AND($C8>=BA8,$C8<=BB8),8:8,"") 

8:8 应为“ R1 ”。

1 个答案:

答案 0 :(得分:1)

我猜你想要文字字符串"R1"作为If的结果,但是当没有引用时,它被引用为xlR1C1范围引用。

drop.Range(Cells(8, c), Cells(LR, c)).FormulaR1C1 = _
    "=IF(AND(RC3>=RC[-18], RC3<=RC[-17]), """ & r & """, TEXT(,))"

TEXT(,)只是一种简单的方式来说""而无需撰写""""