从隐藏列自动筛选范围复制不包括隐藏单元格的内容

我的目标是创build一个macros,在用户select的单元格或行的正上方插入空白行,并将所选行的公式复制到新插入的行中。 只有公式被复制,而不是常量。 复制行中具有常数值的单元格在插入的行中保留为空白。

代码是非常基本的。 这里是:

Sub InsertLine() Selection.EntireRow.Insert Selection.Offset(1, 0).EntireRow.copy Selection.EntireRow Selection.EntireRow.SpecialCells(xlCellTypeConstants).ClearContents End Sub 

除了一种情况,这种方法很好。
如果范围同时包含激活的自动filter隐藏列,则复制行上的隐藏单元格的内容不会被复制方法选中,因此不会被传输到插入的行。 如果范围只是自动过滤只有隐藏的列,那么一切正常。

这种行为在这里有很好的logging,但没有提供解决scheme。 我还没有在网上find任何其他的东西。

直接从电子表格执行剪切和粘贴(ctrl-C / ctrl-V)操作时,此行为是相同的。
所以我会说这不是一个VBA问题。 但是解决scheme可能在于VBA。
任何人都可以提供任何解决scheme或解决方法?

谢谢,

F

 Sub InsertLine() Dim src As Range, srcUsed As Range, c As Range Set src = Selection.Cells(1).EntireRow src.Insert Set srcUsed = Application.Intersect(src, src.Parent.UsedRange) For Each c In srcUsed.Cells c.Copy c.Offset(-1, 0) If Not c.HasFormula Then c.Offset(-1, 0).ClearContents Next c End Sub