Импортировать последний лист Excel в другую книгу как первый лист - PullRequest
0 голосов
/ 04 октября 2018

У меня есть два файла Excel, один с несколькими рабочими листами Excel, каждый месяц в качестве имени рабочего листа, за август будет 8 рабочих листов, в октябре будет 10 рабочих листов и так далее.Другой файл Excel, над которым я работаю, это файл Excel, мне нужно импортировать последний лист из ежемесячного файла Excel в этот лист Excel как первый лист, потому что есть код макроса, который должен быть в первом листе.

Короче говоря, импортируйте дубликат / «создайте новую копию» последнего листа (имя листа всегда меняется) в другую книгу в качестве первого листа.

Dim wbCopy As Workbook
Dim wsCopy As Worksheet
Dim rngCopy As Range
Dim wbPaste As Workbook
Dim wsPaste As Worksheet
Dim rngPaste As Range

Set wbPaste = ActiveWorkbook
Set wbCopy = Workbooks.Open("O:\abc\Inventory\Monthly.xlsm") 
Set wsCopy = wbCopy.Worksheets("Sheet1")  'Question- how to always select last worksheet?
Set rngCopy = wsCopy.Range("a:aa").EntireColumn  'Question- can i duplicate a copy of worksheet ?
Set wsPaste = wbPaste.Worksheets("Order Quantities")  
Set rngPaste = wsPaste.Range("a1")  'Question- this just paste into "Order Quantities", but how to move or duplicate the worksheet into first worksheet in excel workbook. ?

rngCopy.Copy
rngPaste.PasteSpecial

Workbooks.Application.CutCopyMode = False
Workbooks("Monthly.xlsm").Close False

1 Ответ

0 голосов
/ 04 октября 2018

Worksheets.count предоставит вам индекс последнего листа в очереди.

dim wbPaste  as workbook

Set wbPaste = ActiveWorkbook

with Workbooks.Open("O:\abc\Inventory\Monthly.xlsm", readonly:=true) 

    .workSheets(.Worksheets.count).Copy Before:=wbPaste.Sheets(1)
    .close savechanges:=false

end with

'optionally rename the new imported worksheet
wbPaste.workSheets(1).name = "abc"
...