Excel VBA运行时错误1004

时间:2014-02-10 15:10:35

标签: excel vba excel-vba

我正在尝试编写一个宏来粘贴特殊公式,但一直得到运行时错误1004“Range类的PasteSpecial方法失败”。

此宏直接来自使用Excel提供的“记录宏”。

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

以下是事件序列:

  1. 在CSV文件A中手动选择一系列单元格并复制(CTRL + C)。
  2. 切换到XLS文件B并选择我希望粘贴复制数据的单元格。
  3. 按Mac并运行personal.xlsm!paste_formulas
  4. 那是我收到错误的时候。为什么我在复制/粘贴特殊公式时手动工作,但在宏中失败?

    注意:我需要这个以上述顺序工作,无论我复制的选定范围(会不时变化),无论我粘贴公式的位置如何(也会不时变化)。换句话说,硬拷贝固定范围的复制和/或粘贴对我来说不起作用。

    提前感谢您了解我的代码无效或提供解决方法的任何帮助。

1 个答案:

答案 0 :(得分:3)

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

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

enter image description here

设置宏的快捷键并使用它。它会工作:))

enter image description here