我的目标是创建一个宏,将空行插入用户选定的单元格或行的上方,并将公式从选定的行复制到新插入的行中。只能复制公式,而不是常量。复制行中具有常量值的单元格在插入行中保留为空白。
代码是非常基本的。下面是:
Sub InsertLine()
Selection.EntireRow.Insert
Selection.Offset(1, 0).EntireRow.copy Selection.EntireRow
Selection.EntireRow.SpecialCells(xlCellTypeConstants).ClearContents
End Sub
除了一种情况外,这在所有情况下都很有效。
如果范围同时包含激活的自动筛选器和隐藏列,则复制行上隐藏单元格的内容不会被复制方法选中,因此不会传输到插入行。如果范围只有自动过滤的或只有隐藏的列,那么所有的工作良好。
这个行为已经有了很好的这里文档,但是没有提供任何解决方案。我还没在网上找到其他的东西。
当直接从扩展表手动执行剪切粘贴(ctrl/ctrl)操作时,此行为是相同的。
所以我想说这不是VBA的问题。但解决办法可能在于VBA。
有人能提供任何解决方案或解决办法吗?
发布于 2014-01-15 21:24:14
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
https://stackoverflow.com/questions/21147891
复制相似问题