【问题标题】:VBA excel comp ability mode issueVBA excel comp能力模式问题
【发布时间】:2017-07-30 02:16:20
【问题描述】:

大家下午好。我在您的帮助下创建了第一个宏,它运行良好,直到我使用来自 Service-Now 报告的实际源文件和唯一的选项 .XLS 进行测试,所以当我在 Excel 2013 中打开源文件时,它以兼容模式打开和宏给我'运行时错误'9'“下标超出范围”。我应该怎么做才能让它发挥作用?

Sub HELLO()

Dim x As Workbook


Sheets("Sheet1").Cells.Clear

'## Open  workbook first:
Set x = Workbooks.Open("C:\Users\500722\Desktop\dashboard\task.xls")


'Now, transfer values from x to y:
Sheet1.Cells(1, 1) = x.Sheets("Sheet1").Range("A1")
With x.Sheets("Sheet1").UsedRange
'Now, paste to y worksheet:
    Sheet1.Range("A1").Resize( _
        .Rows.Count, .Columns.Count) = .Value

End With

x.Close


End Sub

【问题讨论】:

  • (a) 哪一行给出了错误? (b) task.xls 是否包含名为“Sheet1”的工作表?
  • P.S.回复 cmets 中提出的问题也很有礼貌 - 我刚刚注意到您还没有回复我在您的第一个问题上留下的评论。一旦解决了您的问题,最好将答案标记为“已接受”。
  • @YowE3K 是的,它有一个名为 page1 的工作表 1 和这一行 Sheet1.Cells(1, 1) = x.Sheets("Sheet1").Range("A1")
  • @YowE3K 对不起,我没有看到评论,是的,它有一个名为 page1 的工作表 1 和这一行 Sheet1.Cells(1, 1) = x.Sheets("Sheet1").Range ("A1")
  • 我所指的尚未得到回应的评论是关于您提出的第一个问题(昨天某个时间)。我还没有担心关于这个的评论——人们不能一直在线,所以 cmets 没有立即回复是很自然的。但是提出 3 个新问题而不回答第一个问题的问题是不礼貌的。

标签: vba excel


【解决方案1】:

由于您打开的工作簿中没有名为“Sheet1”的工作表,因此当您尝试访问该工作表时,您的代码将失败。

将所有出现的x.Sheets("Sheet1") 更改为x.Sheets("Page1"),您的问题可能就会消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2014-05-13
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多