Я пытаюсь вставить диапазон формул в определенную c строку.
Но ячейки формулы не меняются:
=BDH('Hist Dorian'!$B$3;"PX_LAST";A13;A13)
A13
должно изменить при вставке:
введите описание изображения здесь
В этом примере на экране формула ячеек должна быть:
=BDH('Hist Dorian'!$B$3;"PX_LAST";A23;A23)
=BDH('Hist Dorian'!$B$3;"PX_LAST";A24;A24)
=BDH('Hist Dorian'!$B$3;"PX_LAST";A25;A25)
=BDH('Hist Dorian'!$B$3;"PX_LAST";A26;A26)
=BDH('Hist Dorian'!$B$3;"PX_LAST";A27;A27)
И так далее .. Но ячейки не меняются
Ниже мой код:
Private Sub Workbook_Open()
Dim AJD As Date
Dim LastDate As Date
Application.Calculation = xlManual
AJD = Now
AJD = Day(AJD) & "/" & Month(AJD) & "/" & Year(AJD)
If AJD <> CDate(ThisWorkbook.Worksheets("Histo").Range("A13").Value) Then
LastDate = CDate(ThisWorkbook.Worksheets("Histo").Range("A13").Value)
NumberOfIt = DateDiff("D", LastDate, AJD)
MsgBox ("MaJ Historique, Derniere Mise a jour : " & LastDate & " Insertion de " & NumberOfIt & " nouvelles lignes")
DoEvents
For i = 1 To NumberOfIt - 1
ThisWorkbook.Worksheets("Histo").Rows(13).Insert shift:=xlShiftDown
ThisWorkbook.Worksheets("Histo").Range("A13").Value = DateAdd("d", i, LastDate)
With ThisWorkbook.Worksheets("Histo")
lrow = NumberOfIt
.Range("B13:DM13").Formula = .Range("B5:DM5").Formula
End With
Next
End If
ThisWorkbook.Worksheets("Primary Pricer").Activate
Application.Calculation = xlAutomatic
MsgBox ("Historique MaJ terminé")
End Sub
EDIT
Когда я вставляю новую строку, как я могу обновить формулу, чтобы изменить ячейки?
Например, я вставляю Row(13)
Таким образом, приведенная ниже формула должна быть =BDH('Hist Dorian'!$B$3;"PX_LAST";A14;A14)
, а не =BDH('Hist Dorian'!$B$3;"PX_LAST";A13;A13)
, но она не изменяется как исключение
Редактировать 2
Sub pasteFormulas()
Range("F6").Copy
Range("G6").PasteSpecial Paste:=xlPasteFormulas
ThisWorkbook.Worksheets("Name").Rows(6).Insert shift:=xlShiftDown
End Sub