只插入公式可见的单元格

时间:2016-02-04 19:44:35

标签: excel vba excel-vba

我在3列中有数据

A B& C,其中过滤器在A列上处于活动状态,我想应用一个代码,以便将公式应用于C列 - 从第二个可见行到最后一个可见行。

这是我编写的代码,但是如果我更改范围(“C:C”)或范围(“C2:C”)

则不起作用
Sub Test()
Dim rng As Range 

Range("C1").Select

Set rng = Application.Intersect(ActiveSheet.UsedRange, Range("**C2:C2000**"))

rng.Select

Selection.Formula = "=RC[-1]+RC[-2]"

End Sub

1 个答案:

答案 0 :(得分:2)

如果有效AutoFilter method,则可能是您的第一行包含列标题标签,数据低于该标题。 Range.CurrentRegion propertyWorksheet.UsedRange property更适合这种情况。

Range.SpecialCells method xlCellTypeVisible将引用可见细胞。我发现工作表的SUBTOTAL function提供了一种很好的非破坏性方法,可以在尝试访问它们之前看到iof有可见的单元格。

一些With ... End With statements将帮助您逐步隔离您正在寻找的细胞。

Remove-AzureStorageBlob -Blob $diskname -Container vhds -Context $context 

我使用的Range.FormulaR1C1 property(而不是原来的Range.Formula property)单曲使用了Sub test() 'note that not a single var is necessary With Worksheets("Sheet1") '<~~ surely you know what worksheet you are on With .Cells(1, 1).CurrentRegion With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0) '<~~one row down If CBool(Application.Subtotal(103, .Cells)) Then 'there are visible cells With .Columns(3).SpecialCells(xlCellTypeVisible) .Cells.FormulaR1C1 = "=RC[-1]+RC[-2]" End With End If End With End With End With End Sub 而不是xlR1C1公式语法。