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

时间:2017-11-29 17:51:12

标签: excel vba excel-vba

我需要编写一个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来运行宏?

2 个答案:

答案 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
' ...