VBA使用xlFillSeries自动填充可见单元格(过滤范围)

我想填充2..N整数系列过滤/可见范围。

这段代码填入了系列,但忽略了过滤的范围:

COL_SID_CURRENT = 3 COL_SID_CURRENT_STR = "c" ROW_LAST = ActiveSheet.UsedRange.Rows.Count ' Start the series with value 2 in cell "c2" Cells(2, COL_SID_CURRENT).FormulaR1C1 = "2" aRangeStr = "" & COL_SID_CURRENT_STR & "2" ' -> "c2" Range(aRangeStr).Select aRangeStr = aRangeStr & ":" & COL_SID_CURRENT_STR & ROW_LAST ' -> "c2:c24" Selection.AutoFill Destination:=Range(aRangeStr),Type:=xlFillSeries 

我试图将xlCellTypeVisible添加到代码中,但没有任何组合工作:

 Range(aRangeStr).SpecialCells(xlCellTypeVisible).Select Selection.AutoFill Destination:=Range(aRangeStr).SpecialCells(xlCellTypeVisible), _ Type:=xlFillSeries 

任何提示如何只填充过滤/可见单元格的系列?

自动填充不适用于已过滤的范围,但还有其他select。 🙂

尝试和testing

你可以使用这个公式代替(我假设你正在过滤Col A中存储的内容(参见示例图像)

我正在添加+ 1,因为您在单元格“c2”中以值2开始系列,

 =IF(A2="FILTER_TEXT",COUNTIF($A$2:A2,"FILTER_TEXT")+1,"") 

在这里输入图像描述

并使其适应您的示例,使用此代码。

 Sub Sample() COL_SID_CURRENT = 3 COL_SID_CURRENT_STR = "c" ROW_LAST = ActiveSheet.UsedRange.Rows.Count ' Start the series with value 2 in cell "c2" Cells(2, COL_SID_CURRENT).Formula = "=IF(A2=""FILTER_TEXT"",COUNTIF($A$2:A2,""FILTER_TEXT"")+1,"""")" aRangeStr = "" & COL_SID_CURRENT_STR & "2" ' -> "c2" aRangeStr = aRangeStr & ":" & COL_SID_CURRENT_STR & ROW_LAST ' -> "c2:c24" Range(aRangeStr).Formula = "=IF(A2=""FILTER_TEXT"",COUNTIF($A$2:A2,""FILTER_TEXT"")+1,"""")" End Sub 

请将“FILTER_TEXT”更改为相关文本。 您也可能需要更改参考范围。 就像我刚才提到的那样,我假定filter是基于Col A中的Values。