繁体   English   中英

打开一个Excel文件并激活工作表1以运行宏

[英]Open a Excel file and Activate sheet 1 to run macros

我需要编写一个VBA代码,该代码允许用户浏览并从目录中选择所需的Excel文件,然后在该Excel文件中激活Sheet1。 之后,我希望宏在激活的工作表上运行。

请从下面向前提供帮助:

Sub GetFile()
Dim fNameAndPath As Variant, wb As Workbook
Dim sht As Worksheet

fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX), *.XLSX", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Set wb = Workbooks.Open(fNameAndPath)

从这里如何激活打开的文件,以及如何激活打开文件的工作表1以运行宏?

无需Activate “ Sheet1”即可在其上运行宏。

如果必须Activate它,请使用:

Set wb = Workbooks.Open(fNameAndPath)

' Option 1: set the first sheet (index)
Set Sht = wb.Worksheets(1) 
' Option 2: set the sheet named "Sheet1"
Set Sht = wb.Worksheets("Sheet1")    

Sht.Activate ' <-- Not sure why you would need to Activate it ?

该代码将打开工作簿,并将打开的工作簿分配给wb对象。 自动wb将是活动的,因此无需为此编写代码。 为了确保Sheet1将被激活,您应该添加:

wb.sheets("Sheet1").activate

我没有完全理解“我希望宏在激活的工作表上运行”的含义。 因为它取决于运行的宏。 为了确保宏将使用活动工作表进行修改等你应该使用对象activesheet例如,你可以这样做:

Dim ws as worksheet
set ws=activesheet
' ...
' do whatever you want on ws in here
' ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM