首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从带有隐藏列的自动筛选范围中复制不包含隐藏单元格的内容

从带有隐藏列的自动筛选范围中复制不包含隐藏单元格的内容
EN

Stack Overflow用户
提问于 2014-01-15 20:49:12
回答 1查看 1.5K关注 0票数 1

我的目标是创建一个宏,将空行插入用户选定的单元格或行的上方,并将公式从选定的行复制到新插入的行中。只能复制公式,而不是常量。复制行中具有常量值的单元格在插入行中保留为空白。

代码是非常基本的。下面是:

代码语言:javascript
运行
复制
Sub InsertLine()

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

End Sub

除了一种情况外,这在所有情况下都很有效。

如果范围同时包含激活的自动筛选器隐藏列,则复制行上隐藏单元格的内容不会被复制方法选中,因此不会传输到插入行。如果范围只有自动过滤的只有隐藏的列,那么所有的工作良好。

这个行为已经有了很好的这里文档,但是没有提供任何解决方案。我还没在网上找到其他的东西。

当直接从扩展表手动执行剪切粘贴(ctrl/ctrl)操作时,此行为是相同的。

所以我想说这不是VBA的问题。但解决办法可能在于VBA。

有人能提供任何解决方案或解决办法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2014-01-15 21:24:14

代码语言:javascript
运行
复制
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
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21147891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档