Excel VBA运行时错误1004

我试图写一个macros来粘贴特殊的公式,但不断得到一个运行时错误1004“范围类的PasteSpecial方法失败”。

这个macros直接来自使用Excel提供的“loggingmacros”。

Sub paste_formulas() Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub 

以下是事件的顺序:

  1. 手动selectCSV文件A中的单元格范围并复制(CTRL + C)。
  2. 切换到XLS文件B并select希望复制的数据粘贴的单元格。
  3. 按macros并运行personal.xlsm!paste_formulas

那是当我得到错误。 为什么在复制/粘贴特殊公式时手动工作,但在macros中失败?

注:我需要这个工作在上面的序列,无论我复制的选定范围(将时常变化),无论我粘贴公式的位置(也将不时地变化)。 换句话说,对一个固定的复制和/或粘贴范围硬编码将不适用于我。

提前感谢帮助理解为什么我的代码不工作或提供解决办法。

原因很简单,当您从CSV复制,然后在工作簿中,单击开发人员工具栏中的Macros ,Excel将清除剪贴板。

当你点击Developer | Macros时,Excel有这个清理剪贴板的习惯 Developer | Macros 。 为了演示这一点,从同​​一个工作簿复制单元格。 你会看到ant像细胞周围的边界。 现在在同一个工作簿中,点击Developer | macros。 ant像边界将消失:)

在这里输入图像说明

为您的macros设置一个快捷键并使用它。 它会工作:)

在这里输入图像说明