打开Excel文件并激活工作表1以运行macros

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

请从下面帮忙转发:

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) 

从这里如何激活打开文件,以及如何激活打开文件的Sheet 1来运行macros?

没有必要Activate “Sheet1”为了运行macros。

如果您必须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 

我没有完全明白你的意思是“我希望macros在激活的表单上运行”。 因为它取决于运行的macros。 要确保macros将使用活动工作表进行更改等,您应该使用对象activesheet例如,您可以这样做:

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