【问题标题】:Copying of data skipping blanks复制数据跳过空白
【发布时间】:2013-08-12 04:29:56
【问题描述】:

美好的一天,有人可以帮助我吗?我有 2 个电子表格,第二个电子表格的复制单元格与第一个电子表格完全相同。但我的问题是,在第一个电子表格上,我有空白行,因为发票是按日期顺序排列的,而不是每天的发票。我用于增值税目的的第二张纸,希望我的选择以列表形式出现,以便只为簿记员打印一页。我有发票的地方,例如。在第一个电子表格的 10 日、15 日和 20 日,“我可以使用什么公式让 3 张发票出现在第二个电子表格中,例如,在第 1、2、3 行,一个在另一个的正下方。

我在 20 年前完成了 VBA,除了这个我无法弄清楚我的生活之外,一切都做得很好。提前感谢任何可以帮助我的人。

【问题讨论】:

标签: excel excel-2013 vba


【解决方案1】:

突出显示,按 F5,单击“特殊”,根据是硬编码数据还是公式数据,选择“常量”或“公式”,然后点击确定。这会将所有空白单元格排除在选择之外,然后照常复制粘贴到另一个工作簿。如果你在 vba 中这样做,这在对象模型中都是可用的

Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.SpecialCells(xlCellTypeFormulas, 23).Select

更新:我忘记了 excel 中的错误(设计缺陷?),当您尝试复制非矩形选择时会出错。见这里(这篇文章较旧,但似乎适用于 2013 年):

http://support.microsoft.com/kb/100715

我相信互联网上有可用的宏来处理这个问题,其中一个在这里

http://www.extendoffice.com/documents/excel/799-excel-copy-multiple-selections.html

一个快速的解决方法是采取相反的方法:使用“特殊”选择来选择空白,然后删除它们。然后在剩余的单元格周围选择一个矩形。

选择空白的 VBA 调用是

Selection.SpecialCells(xlCellTypeBlanks, 23).Select

【讨论】:

  • Seth,当我尝试复制选定的单元格时,我收到一条错误消息,提示“该命令不能用于多项选择。”
  • 所有内容都是一列还是分布在多列中
  • 好的。在单个列上尝试过它并且它有效。如果您在答案中解释这一点可能会有所帮助。如果她的发票中确实有多列数据并且并非所有列中都有相同的空白,那么对于 OP 来说可能是个问题。
  • 非常好,@chuff。我从来不明白为什么这个问题在不同版本的 excel 中如此持久。似乎问题的核心是 excel 不知道如何将单元格转换为连续的块以匹配用户的意图。为什么他们不能采用“将所有内容滑动到左上角”之类的默认行为?
猜你喜欢
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
  • 1970-01-01
相关资源
最近更新 更多