【问题标题】:Import sheet from subfolder从子文件夹导入工作表
【发布时间】:2015-03-21 03:01:02
【问题描述】:

我正在尝试从作为子文件夹的工作簿中获取一张工作表,并将其导入到我当前的工作簿中,我在其中编写宏。 路径和文件如下所示

strPath = Application.ActiveWorkbook.Path & "\Subfolder"
strFile = "myExcel.xlsx"

使用名为 myWorkbook 的工作簿。 如何导入它,我当前的工作簿中是否需要一张空工作表?

【问题讨论】:

  • 你试过什么?你遇到什么问题?除了请求一些志愿者为您编写代码之外,这个问题还有什么意义?注意:“为我编写代码”不是特定的编程问题,请参阅 [this help page](http:\\stackoverflow.com\help\how-to-ask) 以获得一些帮助为 SO 编写问题的指南。
  • 如果您是使用 SO 多年的 100k+ 代表用户,我的评论会是一样的。帖子的评判标准是内容,而不是作者。如果您有一些代码和我们可以帮助您解决的特定问题,您可以使用问题正文下方的链接编辑您的问题。

标签: excel vba


【解决方案1】:

您需要打开源工作簿,然后复制工作表,然后关闭工作簿。您不需要在当前工作簿中有一个空工作表(但您必须至少有 1 个工作表)。像下面这样的东西会起作用:

Dim strPath As String, strFile As String    

strPath = Thisworkbook.Path & "\Subfolder\" ' take note of the extra "\"
strFile = "myExcel.xlsx"

Application.ScreenUpdating = False
Dim wb As Workbook
Set wb = Workbooks.Open(strPath & strFile)

wb.Sheets("SheetName").Copy Thisworkbook.Sheets(1) ' copies before the first sheet
wb.Close False ' close without saving
Application.ScreenUpdating = True

【讨论】:

  • 谢谢!但是wb.Sheets("SheetName").Copy Thisworkbook.Sheets(1) 行正在打开另一个宏。你能解释一下这条线吗,特别是 1 是什么?怎么可能把它复制到最后一张?
  • @RobinDrake 打开另一个宏是什么意思?顺便说一句,要在最后一个单元格之后复制它,请参见post。复制和添加工作表具有相同的前后参数。所以代码是一样的。
猜你喜欢
  • 2013-02-19
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多