允许用户选择宏应引用哪个打开的窗口

允许用户选择宏应引用哪个打开的窗口

我可以让正在运行的宏提示用户选择其中一个打开的 Excel 文档吗?

我有一个非常简单的宏,只需打开几个文档并将值从某些位置粘贴到其他位置并保存一些,关闭其他而不保存,等等。

但是,宏需要从中提取数字的其中一个文档会通过电子邮件发送给我。我可以指望文件的格式相同,每次名称都不同。

我希望能够使用宏程序简单地打开通过电子邮件发送的 Excel 电子表格,然后当宏需要从通过电子邮件发送的 Excel 文档中获取信息时,只需询问我哪个打开的 Excel 文档是正确的。

我发现Application.GetOpenFilename它与我想要的类似,但允许您选择保存位置。通常我的文件不会保存在任何地方(至少没有保存在特定的地方,我确定它在临时空间中的某个地方),直接从电子邮件中打开文件并让宏询问哪个打开的文件是正确的文件会更容易。这可能吗?

答案1

您可以创建一个带有 ComboBox 的用户窗体,其中填充了打开的工作簿和工作表。显示选项并选择一个。

Sub ViewListOfOpenWorkBooksAndWorkSheets()
Dim book As Workbook, sheet As Worksheet
 For Each book In Workbooks
  For Each sheet In book.Worksheets
   UserForm1.ComboBox1.AddItem book.Name + "!" + sheet.Name
  Next sheet
 Next book
UserForm1.Show
End Sub

相关内容