通过打开的对话框打开文件并将该文件保存为活动工作簿

我有一个活动工作簿与macros必须打开另外两个工作簿,并将其作为活动工作簿。 但是包含macros的工作簿仍然是活动的工作簿。 请帮忙。

With myFile .Title = "Choose File" .AllowMultiSelect = False If .Show <> -1 Then Exit Sub End If SF = .SelectedItems(1) SF = Application.GetOpenFilename(SF) MsgBox SF Workbooks.Open Filename:=(SF) wb1 = ActiveWorkbook.FullName MsgBox "SF" & SF MsgBox "WB1" & wb1 

WB1显示macros包含工作簿的path。 不是SF(从打开文件对话框中select的源文件)

此外,下面的代码是否正确?

 For Rw = 4 To DF.Sheet1.UsedRange.Rows.Count For Rw1 = 3 To SF.Sheet1.UsedRange.Rows.Count If df.Sheet1.Cells(Rw, 1).Value = sf.Sheet1.Cells(Rw, 53).Value Then 

提前致谢

您需要将打开的工作簿与object variable相关联,这样可以更轻松地引用代码中的每个工作簿。 所以,而不是这一行:

 Workbooks.Open Filename:=(SF) 

尝试这个解决scheme:

 Dim openWB as Workbook Set openWB = Workbooks.Open(SF) 'and to activate it somewhere in your code you will need the following line: openWB.Activate 

请记住,当时只有一个工作簿可以被激活。

如果您需要使用其他工作簿,则可以再次添加类似的代码,但使用新variables(如Dim openWBNext as workbook等等)

你的问题的第二部分…你的代码是不正确的。 但是,如上所示应用object variables ,可以使用以下结构:

 For Rw1 = 3 To openWB.Sheet1.UsedRange.Rows.Count If openWBNext.Sheet1.Cells(Rw, 1).Value = openWB.Sheet1.Cells(Rw, 53).Value Then