簡體   English   中英

VBA 從第一個工作簿打開兩個工作簿,在第二個工作簿中打開 select 特定工作表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM