【问题标题】:Open, save and close any file打开、保存和关闭任何文件
【发布时间】:2015-11-09 02:41:01
【问题描述】:

我正在编写一个简单的宏,它将打开、保存和关闭一个 Excel 文件,例如 myworkbook.xlsx,但我无法执行此操作。我的文件 myworkbook.xlsx 位于:

C:\Users\Administrator\Desktop\Temp\myworkbook.xlsx

我把代码写成

Sub openSaveClose()
  Workbooks.Open "C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx" // This is working fine
  Workbooks("C:\Users\Administrator\Desktop\Temp\myworkbook.xlsx").Save 
End sub

错误是:

运行时错误9.下标超出范围

【问题讨论】:

  • 我不太清楚你想做什么。看起来您想将文件原样复制到另一个位置。对吗?
  • @Michele 感谢您的回复.. 不,我不会将其复制到其他位置。我只想使用宏打开、保存和关闭任何简单的 excel 文件。如果您对此有任何代码,请分享:)

标签: vba excel


【解决方案1】:

只需要在打开文件时指定路径即可:

Sub openSaveClose()
  Workbooks.Open "C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx"
  Workbooks("myworkbook.xlsx").Save
  Workbooks("myworkbook.xlsx").Close
End sub

使用对象变量,您可以执行以下操作(则无需在保存/关闭语句中使用工作簿的名称):

Sub openSaveClose()
Dim wb as Workbook
Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx")
  wb.Save
  wb.Close
End sub

【讨论】:

  • ++ nice :) 顺便说一句,你可以把wb.Savewb.Close 一起写成wb.Close (True)
  • 非常好,感谢 David 和 Siddharth 的额外效率。
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多