我需要编写一个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)
从这里如何激活打开的文件,以及如何激活打开文件的Sheet 1来运行宏?
答案 0 :(得分:0)
无需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 ?
答案 1 :(得分:0)
代码将打开工作簿并将打开的工作簿分配给wb对象。自动wb将是活动的,因此不需要为此编写代码。为了确保Sheet1将被激活,您应该添加:
wb.sheets("Sheet1").activate
我并没有完全理解你的意思&#34;我希望宏能够在激活的工作表上运行。&#34;因为它取决于运行的宏。要确保宏将使用活动工作表进行更改等,您应该使用对象activesheet
,例如,您可以执行此操作:
Dim ws as worksheet
set ws=activesheet
' ...
' do whatever you want on ws in here
' ...