[英]VBA to open two workbooks from first workbook and select specific sheet in second workbook
我正在嘗試從包含 VBA 的第一個工作簿中打開兩個工作簿,然后激活第二個工作簿中的特定工作表。 代碼如下,但由於某種原因,第二個工作簿中的工作表沒有被激活。 由於文件的名稱和位置會有所不同,因此我在 VBA 文件中對它們進行了引用,以便可以在前端而不是在代碼中更改它們。
代碼如下:
Sub OpenWorkbooks()
Application.ScreenUpdating = False
Dim srcFle, dataFle As String
Dim wb, wb1, wb2 As Workbook
srcFle = ActiveSheet.Range("C7").Value
dataFle = ActiveSheet.Range("C10").Value
Set wb = ThisWorkbook
Set wb1 = Workbooks.Open(srcFle)
Set wb2 = Workbooks.Open(dataFle)
wb1.Sheets("Sheet1").Activate
Application.ScreenUpdating = True
End Sub
提前致謝。
我想你忘了添加第二個工作簿的激活
Sub OpenWorkbooks()
On Error goto CleanUp '<--- This will restore your screen update in case of error
Application.ScreenUpdating = False
Dim srcFle, dataFle As String
Dim wb, wb1, wb2 As Workbook
srcFle = ActiveSheet.Range("C7").Value
dataFle = ActiveSheet.Range("C10").Value
Set wb = ThisWorkbook
Set wb1 = Workbooks.Open(srcFle)
Set wb2 = Workbooks.Open(dataFle)
wb1.Sheets("Sheet1").Activate
wb2.Sheets("Sheet1").Activate '<--- You need this line to activate the 2nd workbook
CleanUp:
Application.ScreenUpdating = True
End Sub
希望這是你需要的。 如果您需要進一步的幫助,請告訴我!
Option Explicit Sub OpenWorkbooks() ' ' You have declared srcFle as Variant ' Dim srcFle, dataFle As String ' ' You have declared wb and wb1 as Variant ' Dim wb, wb1, wb2 As Workbook ' ' This is how it's done: ' Dim srcFle As String, dataFle As String ' Dim wb As Workbook, wb1 As Workbook, wb2 As Workbook ' But best is briefly describing or naming the variables: Dim srcFle As String ' Source Workbook Name Dim dataFle As String ' Data Workbook Name Dim wb As Workbook ' This Workbook Dim wb1 As Workbook ' Source Workbook Dim wb2 As Workbook ' Data Workbook ' Retrieve Target Workbook Names from This Workbook. Set wb = ThisWorkbook srcFle = wb.ActiveSheet.Range("C7").Value dataFle = wb.ActiveSheet.Range("C10").Value ' ' better is e.g.: ' srcFle = wb.Sheets("Sheet1").Range("C7").Value ' dataFle = wb.Sheets("Sheet1").Range("C10").Value ' Open Target Workbooks (wb1, wb2) Set wb1 = Workbooks.Open(srcFle) Set wb2 = Workbooks.Open(dataFle) ' Prepare to work in Source Workbook (wb1). wb1.Sheets("Sheet1").Activate End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.