У меня есть большой объем данных, которые я собрал из разных файлов. В этой основной книге у меня разные типы формул для каждой ячейки. В диапазоне от A до F находятся данные из других файлов. В диапазоне от H до AC у меня есть формула, которую я автоматически заполняю, перетаскивая ее вручную каждый раз, когда вводятся новые данные. Код ниже - это то, что я использовал, и у него есть только 6 разных формул, которые я хочу автозаполнять.
Application.ScreenUpdating = False
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("D2").Formula = "=$L$1/$L$2"
Range("D2").AutoFill Destination:=Range("D2:D" & lastRow)
Range("E2").Formula = "=$B2/2116"
Range("E2").AutoFill Destination:=Range("E2:E" & lastRow)
Range("F2").Formula = "=$D$2+(3*SQRT(($D$2*(1-$D$2))/2116))"
Range("F2").AutoFill Destination:=Range("F2:F" & lastRow)
Range("G2").Formula = "=$D$2-(3*SQRT(($D$2*(1-$D$2))/2116))"
Range("G2").AutoFill Destination:=Range("G2:G" & lastRow)
Range("H2").Formula = "=IF($E2>=$F2,$E2,NA())"
Range("H2").AutoFill Destination:=Range("H2:H" & lastRow)
Range("I2").Formula = "=IF($E2<=$G2,$E2,NA())"
Range("I2").AutoFill Destination:=Range("I2:I" & lastRow)
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
Однако в основной книге есть 15 различных формул, которые я хочу, чтобы она автоматически заполнялась каждый раз, когда вводились новые данные. У меня есть несколько основных книг, и формула не является постоянной. Вставка кода выше для каждой формулы - боль. Есть ли способ, который может заставить программу автоматически перетащить ее? В основной книге у меня уже есть формулы. Я пробовал много разных кодов, чтобы сделать его автозаполнением, но пока что один выше, который работает без ошибок. Я попытался использовать что-то вроде этой или аналогичной версии для этого, но никто не работает:
With wbList.Sheets("Attribute - 10 mil stop")
lastRow = Worksheets(ActiveSheet.Name).Range("B2").Rows.Count
'Worksheets(ActiveSheet.Name).Range(Selection, Selection.End(xlDown)).Select
Worksheets(ActiveSheet.Name).Range("D2:I2").Select
Selection.AutoFill Destination:=Range("D2:I" & Range("B2" & Rows.Count).End(xlDown).Row)
End With
Я так много перепутал с кодом. Я даже не знаю, предположительно ли это так. Спасибо, что помогли!