Мне нужно создать новый рабочий лист в Workbook1 и назвать его в соответствии со значением ячейки.
Затем мне нужно скопировать и вставить значение из Workbook1 в Workbook2, чтобы запустить модель.
Затем мне нужно скопировать и вставить выходные данные Workbook2 в новый рабочий лист, который я только что создал в Workbook1.
Затем мне нужно повторить эту задачу, пока я не просмотрю все записи в моем списке в Workbook1.
По пути я продолжаю сталкиваться с множеством проблем.
Основная проблема, с которой я столкнулся, заключается в том, что у макроса возникают проблемы при выборе значения для копирования и вставки. Я продолжаю получать ошибку времени выполнения 9 и не могу ее устранить.
Я создал цикл Do, чтобы попытаться выполнить все шаги, перечисленные выше.
Я также создал Do Loop внутри Do Loop для создания нового рабочего листа. Это создает вкладку, но поместил лист в обе книги после моих попыток исправить ошибку.
Я также не знаю, как ссылаться на новую вкладку, которую я создал в последующем коде, поэтому написал заполнитель под названием «NEW TAB», чтобы обозначить это
Диапазон выходных данных, создаваемых Workbook2, отличается при каждом запуске модели, поэтому я пытаюсь каждый раз копировать и вставлять 500 000 строк данных между рабочими книгами. Произошла ошибка 1004 о том, что это слишком много строк.
' Variable Declaration
Dim Ws As Worksheet
Set Ws = Sheets("Universe")
Dim WorksheetNumber As Integer
WorksheetNumber = 1
'Open Workbook2
Workbooks.Open "Workbook2"
' Create Do Loop
' Create New Worksheet in Workbook1
ThisWorkbook.Activate
Ws.Range("B11").Select
Do While ActiveCell.Value <> ""
intTimes = intTimes + 1
If ActiveCell.Value > 0 Then
' Create Output Sheet
With ThisWorkbook.Sheets.Add(, ActiveSheet)
Do
.Name = WorksheetNumber
If Err = 1004 Then
WorksheetNumber = WorksheetNumber + 1
Err.Clear
Else
Exit Do
End If
DoEvents
Loop
End With
' Enter Value into Workbook2 from Workbook1
ThisWorkbook.Sheets("Universe").Range("O11").Copy Destination:=Workbooks("Workbook2").Sheets("Model").Range("E9")
' Copy and Paste Column D from Workbook2 to Workbook1
Workbooks("Workbook2").Worksheets("Model").Range("D14:D500000").Copy
Workbooks("ThisWorkbook").Worksheets("NEW TAB").Range("D2").PasteSpecial Paste:=xlPasteValues
'Copy and Paste Column G from Workbook 2 to Workbook1
Workbooks("Workbook2").Worksheets("Model").Range("G14:G500000").Copy
Workbooks("ThisWorkbook").Worksheets("NEW TAB").Range("E2").PasteSpecial Paste:=xlPasteValues
'Copy and Paste Remaining Details from Workbook2 to Workbook1
Workbooks("Workbook2").Worksheets("Model").Range("L14:U500000").Copy
Workbooks("ThisWorkbook").Worksheets("NEW TAB").Range("F2").PasteSpecial Paste:=xlPasteValues
End If
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
intTimes = 0
End If
Loop
Ожидаемый результат заключается в том, что при каждом запуске модели будет создаваться новая вкладка, в которую каждый раз вставляются выходные данные модели. Будет создано до 500 новых вкладок (которые затем необходимо будет объединить в одну вкладку).