簡體   English   中英

根據當前工作簿上單元格中的數據,確定要從另一個工作簿復制什么工作表

[英]Determin what worksheet to copy from another workbook based on data in a cell on the current workbook

我正在使用下面的代碼打開數據並將其從一個工作簿復制到另一個工作簿中。 此代碼是我們使用的另一個文件中的內容,該文件是由不再與我們合作的人完成的。

我需要添加代碼,以便它從要打開的文件中提取數據的選項卡名稱位於單元格Y2中工作表1上的當前工作簿中。 我從中拉出的工作簿有14個標簽,標簽為1-14,我在Y2中鍵入的數字應確定要從中復制數據的標簽的名稱。 我需要幫助的是帶有(????????????)的代碼。

我希望這是有道理的,然后我想就很難解釋了。

謝謝!


Option Explicit

' ************************************************
' Variables For File Open Dialogue Box
' ************************************************
Public strDialogueFileTitle As String
Public strFilt As String
Public intFilterIndex As Integer
Public strCancel As String
Public strWorkbookNameAndPath As String
Public strWorkbookName As String
Public strWorksheetName As String

Public Sub Copy_TY()
Dim wkbVarianceWorkbook As Workbook
Dim wksVarianceWorksheett As Worksheet
Dim wkbImportedWorkbook As Workbook
Dim wksImportedWorksheet As Worksheet
Dim rngImportCopyRange As Range

Application.ScreenUpdating = False
Set wkbVarianceWorkbook = ThisWorkbook
Set wksVarianceWorksheett = Sheets("TY")

' ****************************************************************************
' Prompt In The Dialogue Box
' ****************************************************************************
intFilterIndex = 1
strDialogueFileTitle = "Select The Workbook You Want To Import"

' ****************************************************************************
' Present the Open File Dialogue To The User
' ****************************************************************************
Call OpenFileDialogue

' ****************************************************************************
' Notify The User If No File Was Successfully Opened
' ****************************************************************************
If strCancel = "Y" Then
    MsgBox ("An Open Error Occurred Importing Your File Selection")
    Exit Sub
End If

' ****************************************************************************
' Set Imported Workbook and Worksheet Variables
' ****************************************************************************
Set wkbImportedWorkbook = ActiveWorkbook
Set wksImportedWorksheet = wkbImportedWorkbook.Sheets("?????????")

' ****************************************************************************
' Copy The Data (Paste Special Will Be The Next Example)
' ****************************************************************************
Set rngImportCopyRange = Range(wksImportedWorksheet.Cells(2, 1), Cells(250, 1)).EntireRow
rngImportCopyRange.Copy wksVarianceWorksheett.Cells(2, 1)

wkbVarianceWorkbook.Activate
Application.DisplayAlerts = False
wkbImportedWorkbook.Close Savechanges:=False
Application.DisplayAlerts = True

wksVarianceWorksheett.Activate
wksVarianceWorksheett.Cells(1, 1).Select

Application.ScreenUpdating = True

Sheets("Variance").Select

End Sub

Private Sub OpenFileDialogue()

' ************************************************
' Display a File Open Dialogue Box For The User
' ************************************************
strCancel = "N"
strWorkbookNameAndPath = Application.GetOpenFilename _
    (FileFilter:=strFilt, _
     FilterIndex:=intFilterIndex, _
     Title:=strDialogueFileTitle)

' ************************************************
' Exit If No File Selected
' ************************************************
If strWorkbookNameAndPath = "" Then
    MsgBox ("No Filename Selected")
    strCancel = "Y"
    Exit Sub
ElseIf strWorkbookNameAndPath = "False" Then
    MsgBox ("You Clicked The Cancel Button")
    strCancel = "Y"
    Exit Sub
End If

' ******************************************************
' Now That You Have The User Selected File Name, Open It
' ******************************************************
Workbooks.Open strWorkbookNameAndPath
End Sub

在這里,替換此行:

Set wkbImportedWorkbook = ActiveWorkbook
Set wksImportedWorksheet = wkbImportedWorkbook.Sheets("?????????")

通過這一行:

Dim wsName as String

wsName = wksVarianceWorksheet.Range("Y2").Value 'I only assumed you get Y2 value from this sheet which was declared in above. you can change and make another variable if your not pulling data from sheets TY
Set wkbImportedWorkbook = ActiveWorkbook
Set wksImportedWorksheet = wkbImportedWorkbook.Sheets(wsName)

希望這是您所需要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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