У меня есть существующий скрипт, который делает большую часть того, что мне нужно. Сценарий (отсюда: https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html) в основном вставляет, а затем копирует строки данных X количество раз, где X - одно из полей в таблице. Он работает хорошо, и на странице, на которую ссылаются, приведены примеры начала и конца баллы.
Но когда я запускаю скрипт в Excel, я иду от ~ 2000 строк в моей таблице до ~ 40000 строк. Мне нужно изменить все дублированные строки (инкрементные даты), и поэтому я пытаюсь включить новые данные в таблицу во время выполнения сценария, который позволит мне изменять данные в дублированных строках ... например, я могу использовать дубликаты цифр 1, 2, 3, 4 и некоторые простые формулы для изменения дат относительно начальной точки.
Я ожидаю, что мне понадобится дополнительный код, вставленный в подпрограмму, который будет добавлять данные в назначенный столбец и выполнять автоматическое увеличение с 1.
Имея ноль фактических навыков VBA, я не знаю, как решить вторую часть моей проблемы с помощью кода, который у меня уже есть. Любая помощь была бы просто потрясающей !!
Sub CopyData()
'Updateby Extendoffice 20160922
Dim xRow As Long
Dim VInSertNum As Variant
xRow = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cells(xRow, "D")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
Selection.Insert Shift:=xlDown
xRow = xRow + VInSertNum - 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub