用于过滤数据然后将公式插入可见单元格的宏

时间:2016-09-13 17:36:47

标签: filter macros formula paste visible

我正在尝试过滤工作表(通过列DL)。然后我需要在DQ列中插入一个公式,但仅用于可见单元格。我以前使用下面的代码,除了我不希望具体引用单元格DQ3。此单元格可能会更改,因此会复制并粘贴错误的公式。

Dim LastRow As Long
Dim FinalRow As Long

LastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _
    "ABC"

Range("DQ3").Copy

FinalRow = Cells(Rows.Count, "B").End(xlUp).Row
Range("DQ3:DQ" & FinalRow).Select
ActiveSheet.Paste

我尝试了下面的代码,但它返回“运行时错误'1004':最后一行代码中的应用程序定义或对象定义错误:

Dim LastRow As Long
Dim FinalRow As Long

LastRow = Range("B" & Rows.Count).End(xlUp).Row

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _
    "ABC"

FinalRow = Range("B" & Rows.Count).End(xlUp).Row
Range("DQ2:DQ" & FinalRow).FormulaR1C1 = "=(RC[-1]-RC[-2])"

我也试过这段代码:

 Dim LastRow As Long
 Dim FinalRow As Long


LastRow = Range("B" & Rows.Count).End(xlUp).Row

Range("DL2:DL" & LastRow).AutoFilter Field:=116, Criteria1:= _
    "ABC"


FinalRow = Range("B" & Rows.Count).End(xlUp).Row
Set RNG = Range("DQ2:DQ" & FinalRow).SpecialCells(xlCellTypeVisible)

RNG = "=(RC[-1]-RC[-2])"

这样运行没有任何错误,但不会将任何数据填充到DQ列中。

有关如何摆脱错误或如何实现我的原始目标的任何建议?我不确定我想要做什么甚至可以工作,但这就是我被困住的地方。

谢谢!

1 个答案:

答案 0 :(得分:0)

我能够使用下面的代码实现我的目标。发布以防其他人将来遇到同样的问题。

With ActiveSheet.Range("DQ2:DQ" & Cells(Rows.Count,2).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
  .Cells.FormulaR1C1 = "=((RC[-1]-RC[-2])"`
  .Cells.FillDown`
   Worksheets("WorksheetName").Columns(10).Calculate

End With

干杯!