打开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 ' ...