VBA - Как сделать формулы Dynami c при вставке новых строк? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть макрос, который копирует и вставляет строки на основе входного ящика пользователя. Эти строки содержат формулы, но после их вставки они становятся некорректными (проблема ссылок). Я хотел бы сделать формулы Dynami c в коде (через R1C1) или через функцию Index, чтобы при вставке строк новостей результаты не менялись. Как вы можете видеть на рисунке, некоторые ячейки ссылаются на другой лист, некоторые в абсолютных / относительных ссылках, но в конце только строки № 19 и № 20 содержат формулы.

Как я могу адаптировать код ниже?

Sub Stock(nbproduits As Long)
Dim MyN As String
Dim i As Long, MyMarker As Long, MyM As Long, LstRW As Long
Dim ws As Worksheet: Set ws = Stocks
If nbproduits = 0 Then
MyN = InputBox("How many products do you want to add?", "My Input Box")
 If Not IsNumeric(MyN) Then 
MsgBox "Entrez un nombre svp", vbCritical, "Error"
            Exit Sub
        End If

        MyN = CInt(MyN)
    Else
        MyN = CInt(nbproduits)
    End If
For MyMarker = 1 To 1

  LstRW = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
MyM = Application.Match("Marker" & MyMarker, ws.Range(ws.Cells(1, 1), ws.Cells(LstRW, 1)), 0)

            For i = 1 To MyN

                ws.Rows(MyM + 1 & ":" & MyM + 6).Copy

                ws.Rows(MyM + 1 + 6 * i).EntireRow.Insert Shift:=xlUp

                ws.Rows(MyM + 1 + 6 * i).PasteSpecial Paste:=xlPasteFormats

                'ws.Cells(MyM + 1 + 6 * i, 4).FormulaR1C1 = "R[12]C* RC[-1])" testing
                'ws.Cells(MyM + 1 + 6 * i, 4).FormulaR1C1 = "RC[12]* RC[-1])" testing
            Next i
    Next MyMarker

End Sub

Большое спасибо!

enter image description here

...