如何在FormulaR1C1上使用变量

时间:2016-06-14 23:47:12

标签: excel vba

我不知道如何使用 Varibale (例如 X )。

使用此代码即时寻找 PS16111 这是一个采购订单编号,我创建一个新的列,然后每行具有相同的值将是#N / A,然后在此代码的末尾,我将删除 #N / A 行,这意味着将删除所有 PS16111 。这是我想要做的,但使用不同的输入。

我尝试了使用变量而不是 PS16111 的不同方法,但我找不到任何方法。

感谢。

列(3).EntireColumn.Insert

使用范围(“C2:C”& ActiveSheet.UsedRange.Rows.Count)

        .FormulaR1C1 = =IF(RC[1]="""","""",IF(RC[1]=""PS16111"",NA()))"

        .Value = .Value

        On Error Resume Next

        .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete

End With

On Error GoTo 0

Columns(3).EntireColumn.Delete

2 个答案:

答案 0 :(得分:0)

首先,您错过了公式中的前导"

然后回答您的问题,请使用

x = "PS16111"
rng.FormulaR1C1 = "=IF(RC[1]="""","""",IF(RC[1]=""" & x & """,NA()))"

将产生公式

=IF(B1="","",IF(B1="PS16111",NA()))

答案 1 :(得分:0)

'在一切之前感谢 chris neilsen 来完成拼图。 在这种情况下,我将所有代码放在一起,你想在你的项目中使用它。

使用此代码,您将能够在Sheet2中 C2中找到一个字符串

然后返回 Sheet1 并创建一个新的空 C列

然后计算Sheet1中有多少行

然后查找变量 X ,如果发现 #N / A ,如果不是错误

所有包含#N / A值的行都将被删除。

最后,C列将被删除。

“---------------------------------------------- ------------------------------

Dim X As String

X =工作表(“sheet2”)。范围(“C2”)。值

工作表( “工作表Sheet”)。选择

列(3).EntireColumn.Insert

使用范围(“C2:C”& ActiveSheet.UsedRange.Rows.Count)

         .FormulaR1C1 = "=IF(RC[1]="""","""",IF(RC[1]=""" & X & """,NA()))"

        .Value = .Value

        On Error Resume Next

        .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete

End With

On Error GoTo 0

Columns(3).EntireColumn.Delete