0

以下のコードを使用して、あるブックから別のブックにデータを開いてコピーしています。このコードは、私たちが使用している別のファイルからのものであり、もはや私たちとは関係のない誰かによって作成されたものです。

開くファイルのデータを取得するタブ名がセル Y2 のシート 1 の現在のワークブックにあるように、コードに追加する必要があります。私がプルしているワークブックには、1 ~ 14 のラベルが付いた 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
4

1 に答える 1