Excel VBA:运行时错误“1004”:选择Range类的方法失败

时间:2014-03-05 19:21:35

标签: excel vba excel-vba

我正在编写一个宏来处理excel工作表,该工作表保存在模板中,然后从单独的应用程序导出到.xls或.xlsx。此宏用于复制两列“x”次,具体取决于输入单元格的数量。

Sub Matrix_Quantity()
Dim x As Integer
x = ActiveWorkbook.Sheets("Inspection Sampling Matrix").Cells(11, 4)
Dim n As Integer
    n = x - 1
    For numtimes = 1 To n
        'Loop by using x as the index number to make x number copies.
        Sheets("Inspection Report").Columns("F:G").Select
        Selection.Copy
        Selection.Insert Shift:=x1 + nToRight
    Next
End Sub

我遇到的问题是,当使用模板(.xlt)运行宏时,它运行正常。一旦模板转换为.xls或.xlsx,它就会发现工作并产生运行时错误。调试宏时会突出显示

Sheets("Inspection Report").Columns("F:G").Select

我的感觉是,它正在寻找.xlt工作簿中的列,但是当转换为.xls或.xlsx时,它仍然在尝试查找.xlt工作簿,我不确定它的工作方式是什么或为什么此

3 个答案:

答案 0 :(得分:1)

当我尝试运行脚本来拆分工作簿并将它们保存为具有工作簿名称的单独文件时,我收到了运行时错误1004,因为我隐藏了其中一个选项卡。

确保在运行拆分工作簿脚本之前取消隐藏所有选项卡!

答案 1 :(得分:1)

您必须在不同的表格上编写代码,不同的参考。

尝试在模块中编写相同内容。

答案 2 :(得分:0)

我遇到了同样的问题,simoco的回答让我走上正轨。这应该有效:

Sub Matrix_Quantity()
Dim n As Integer
Dim numtimes As Integer
n = Sheets("Inspection Sampling Matrix").Cells(11, 4) - 1
For numtimes = 1 To n
    Sheets("Inspection Report").Columns("F:G").Copy
    Sheets("Inspection Report").Columns("F:G").Insert Shift:=xlShiftToRight
Next
End Sub