Я пытаюсь написать код, который перенесет конечный баланс каждого продукта с одного листа в ячейку начального баланса вновь созданного листа.Код работает для первого продукта, но затем, когда он смещает столбцы, конечный баланс не переносится, а только начальный баланс.Ниже мой код VBA.Конечные сальдо каждого продукта все расположены в строке 39, но смещены на 4 столбца.Начальный баланс - строка 7 и то же смещение (4).Цикл существует потому, что я использую этот код VBA для множества различных рабочих книг, а количество продуктов отличается для каждой рабочей книги.
Sub newsheet () 'Функция позволяет пользователю скопировать и вставить новый лист', всесодержимое в столбцах платежей и авансов каждого продукта очищается, но форматирование остается неизменным.
Application.ActiveWorkbook.ActiveSheet.Copy After:=ActiveSheet
Range("C8:D38,H8:I38,M8:N38,R8:S38,W8:X38,AB8:AC38,AG8:AH38,AL8:AM38," & _
"AQ8:AR38 , AV8:AW38 , BA8:BB38 , BF8:BG38 , BK8:BL38 , BP8:BQ38 , BU8:BV38 , BZ8:CA38," & _
"CE8: CF38 , CJ8: CK38 , CO8: CP38 , CT8: CU38 , CY8: CZ38 , DD8: DE38 ").ClearContents
' Setting up new variables for the following procedure
' it will allow the user to copy paste ending balance of old sheet to beginning balance of the new sheet
Dim wks As Worksheet
Dim rng As Range
Dim rng2 As Range
Set wks = Application.ActiveWorkbook.ActiveSheet.Previous
Set rng = wks.Range("E39")
Set rng2 = Application.ActiveWorkbook.ActiveSheet.Range("E7")
Do While Not IsEmpty(rng)
' loops through the copied sheets facilities.
rng.Copy
rng2.PasteSpecial xlPasteValues
Set rng = rng.Offset(0, 4)
Set rng2 = rng2.Offset(0, 4)
Loop 'Loops back through the previous sheet until it doesnt find any product anymore.
End Sub