【问题标题】:VBA - spontaneous 'Excel cant insert new cells' errorVBA - 自发的“Excel 无法插入新单元格”错误
【发布时间】:2017-06-21 21:18:04
【问题描述】:

我一直在研究一个非常大的宏。

我把这个项目搁置了 2 天,去做其他事情。

我把它拿回来了,现在我得到一个 1004 运行时错误:

Microsoft Excel 无法插入新单元格,因为它会推送非空单元格 工作表末尾的单元格。这些单元格可能显示为空,但 有空白值、某些格式或公式。删除足够多的行 或列为您要插入的内容腾出空间,然后重试。

错误出现在代码中:

    Sub Initial_Setup()

    'Create Transform Tab

        Sheets.Add Before:=Worksheets("Lists")
        ActiveSheet.Name = "Transform"

    'Copy Raw Data Over

        Sheets("Sitedata").Select
        Cells.Select
        Selection.Copy
        Sheets("Transform").Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

    Columns("A").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

我对此进行了研究,并导致范围从隐藏字符到自动填充再到冻结窗格。

这里是踢球者,这不是我现在得到这个错误的唯一地方。移动数据的方法无关紧要。选择性粘贴,VBA 将所有粘贴的单元格视为非空单元格。 Range("A1").Value = Range("A1").Value,VBA将所有粘贴的单元格视为非空单元格。

如果我做一个 =Len() 测试,它的 0 个字符。如果我做一个 =IF(a1="","x","") 测试它的“x”。如果我执行 =CountA(),我得到一个 1。Ctrl+end 将我带到 AA3086,即实际数据集的末尾,而不是迄今为止最右边的列。

解决方法是尝试将“Cells.Select”更改为更有针对性的参考,但这将是在不同地方进行大量修补的开始。

有没有其他人经历过这样的事情,或者他们在过去的几天里有过这种经历吗?

谢谢,

【问题讨论】:

  • 没有这样的吗?:extendoffice.com/documents/excel/…
  • 如果您可以共享一个复制问题的工作簿会有所帮助(只需要上面的代码和一些虚拟数据)
  • 谢谢。我下班回家,把工作簿放到我的个人电脑上,然后启动宏,它仍然像魅力一样工作。所以这意味着两天前在我的公司网络中发生了一些事情,这对 VBA 造成了损害。您的链接为我提供了第一个线索,让我尝试追查导致问题的原因。

标签: excel vba


【解决方案1】:

我认为错误消息的含义正是它所说的。只要您的宏插入行,它就会触发该消息。如果你在一张全新的床单上试一试,它不会给你带来任何问题,对吗?

【讨论】:

  • 虽然您没有错,但我不明白空单元格的粘贴值如何引入空值。粘贴值的目的之一不是不这样做吗?此外,我一生都无法弄清楚我可以做些什么才能让它从两天前正常工作到现在无法处理我从电子邮件中提取的文件副本并且在我发送它时正在工作.真的想找到一种方法,不需要在功能上重写它来解决这个错误。
  • 如果您的工作表中存在导致此问题的“某些东西”,那么如果您创建工作簿的副本,则存在复制该内容的风险。如果您改为通过复制块来重新创建工作簿,它可能会起作用。此外,您在回复中提到“引入 null”,但我可以在您的原始问题中看到与此相关的任何内容
  • 要么是一个 Excel 更新出来并改变了一些东西,要么我疯了。我没有说“引入 null”,但还有什么 len 为 0,标识为“”,CountA 返回为 1?
  • 我读到你了。最后一个想法。选择数据集右侧的所有数据并删除所有格式。然后对数据集下的所有数据执行相同操作并执行相同操作。
  • 刚刚注释掉插入命令之前的内容,删除了AA3086右侧和下方的整列和整行,运行插入,同样的错误。这对我来说毫无意义。
猜你喜欢
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2016-08-09
相关资源
最近更新 更多