【问题标题】:Why do I keep getting a run error when using my macro?为什么在使用宏时总是出现运行错误?
【发布时间】:2015-02-23 13:48:55
【问题描述】:

您好,我有一个宏,我在另一个项目上使用过,并试图在这个项目上使用它。

目前我有两个 Excel 工作表(Excel 工作表 A 和 Excel 工作表 B),并且有一个宏应该在 Excel 工作表 A 的某个选项卡上取一定范围,然后将其复制到 Excel 工作表 B 的某个选项卡上.

宏运行良好,直到将部分粘贴到 Excel 工作表 B 中的某个点。

问题就在 ThisWorkbook.Activate 之后:

"Sheets("GTA800-1 发动机小时").Select"

完整代码如下:

' open the source workbook and select the source sheet
Workbooks.Open Filename:="D:My Documents\Fleet Data (Hrs, Aircraft flying, etc.)\updated_monthly_engine_hrs_97_03.xls"
Sheets("PW150").Select

' copy the source range
Sheets("PW150").Range("B2:G13").Select
Selection.Copy

' select current workbook and paste the values 
ThisWorkbook.Activate
Sheets("GTA800-1 Engine Hours").Select
Sheets("GTA800-1 Engine Hours").Range("B2:G13").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

' close the source workbook
Windows("updated_monthly_engine_hrs_97_03.xls").Activate
ActiveWorkbook.Close

【问题讨论】:

  • 您确定工作表的名称完全正确与您所拥有的一样(没有前导或尾随空格等”?

标签: excel vba


【解决方案1】:

知道实际的错误消息会很有用,但无论如何都不需要选择:

With Workbooks.Open(Filename:="D:My Documents\Fleet Data (Hrs, Aircraft flying, etc.)\updated_monthly_engine_hrs_97_03.xls")
    .Sheets("PW150").Range("B2:G13").Copy

    ' select current workbook and paste the values
    ThisWorkbook.Sheets("GTA800-1 Engine Hours").Range("B2").PasteSpecial Paste:=xlValues, _
                                Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    .Close
End With

【讨论】:

  • 即使使用该代码,我也会收到相同的错误“运行时错误'9':下标超出范围”。它以黄色突出显示您刚刚提供的代码。
  • 那么工作表名称不存在于包含代码的工作簿中。名称错误,或者您查看的工作簿有误。
  • 工作表存在且名称正确,这就是混淆所在。我已经三重检查了这个我什至直接将工作表名称复制到代码中。 GTA800-1 发动机小时数
  • Workbook A 是用引用声明的,它实际上是打开的。 ThisWoorkbook.Sheets("GTA800-1 Engine Hours") ...................... 是对应具有从 Workbook1 复制的范围的工作簿的直接引用选择。还是我理解的不对?
  • 模块中的代码是否与“GTA800-1 Engine Hours”工作表在同一个工作簿中?如果是,则工作表名称不正确。如果不是,那就是代码的问题。
【解决方案2】:

只是一个快速的可能性。选项卡名称中的空格通常会导致问题。尝试将其更改为下划线,看看它是否正常工作(名称和代码都清楚)。

【讨论】:

  • 我曾想过尝试这样做,但直到现在才再次陷入困境。扩展是否重要?一个是普通的旧 97-03 工作簿,一个是嵌入宏的工作簿?只是想在这一点上考虑任何事情。
【解决方案3】:

我不是 100% 确定问题出在哪里。我刚刚在工作表中创建了一个新选项卡并将其命名为 abc 只是为了对其进行测试,然后宏就可以正常工作了。虽然上面前一个标签上的命名是正确的???

之前的选项卡已链接到访问权限,但我确实删除了链接,这是我能想到的唯一导致错误的原因。有人想跟进并确认吗?否则,这是我关于如何解决我的问题的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多