Заполнение нескольких формул до последней строки в зависимости от диапазона Dynami c - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь просто заполнить набор формул в ячейках a2: i2, пока ячейка в столбце J не станет пустой, я уже заполнил формулы в ячейки a2: i2, которые мне нужны в более ранней части VBA код. Мой код такой, как показано ниже, несколько последних строчек после «Копирование формул вниз» - это то, что я пытаюсь выполнить sh, любая помощь будет принята с благодарностью!

Sub Process_Data () '' Process_Data Macro '

'Dim LastRow As Long

'Clears previous formulas
RawData.[A2:I30001].ClearContents

'ford
RawData.[i2].FormulaR1C1 = _
    "=IF(AND(RC[2]=""Ford"",RC[19]=""""),IF(RC[5]>RC[7],EDATE(RC[5],7)-7,EDATE(RC[7],7)-7),IF(AND(RC[2]=""Ford"",RC[19]<>""""),RC[8],""""))"

'Volvo
RawData.[h2].FormulaR1C1 = _
    "=IF(AND(RC[3]=""Volvo"",RC[20]=""""),IF(RC[6]>RC[8],RC[6]+VLOOKUP(RC[3]&RC[2],'Lookup Table'!C[-6]:C[-4],3,FALSE)-14,IF(RawData!RC[8]>=RawData!RC[6],RawData!RC[8]+VLOOKUP(RawData!RC[3]&RawData!RC[2],'Lookup Table'!C[-6]:C[-4],3,FALSE)-14)),IF(AND(RC[3]=""Volvo"",RC[20]<>""""),RC[9],""""))"

'BMW
RawData.[g2].FormulaR1C1 = _
    "=IF(AND(OR(RC[4]=""BMW"",RC[4]=""Mini""),RC[21]=""""),IF(NETWORKDAYS(RC[7],RC[9])-1<=3,EDATE(RC[7],RC[3]),IF(NETWORKDAYS(RC[7],RC[9])-1>3,EDATE(RC[9],RC[3]))),IF(AND(OR(RC[4]=""BMW"",RC[4]=""Mini""),RC[21]<>""""),RC[10],""""))"

'Mitsubishi
RawData.[f2].FormulaR1C1 = _
    "=IF(AND(RC[5]=""Mitsubishi"",RC[22]=""""),IF(RC[10]>=RC[8],EDATE(RC[10],RC[4]),EDATE(RC[8],RC[4])),IF(AND(RC[5]=""Mitsubishi"",RC[22]<>""""),RC[11],""""))"

'Jag/Land rover
RawData.[e2].FormulaR1C1 = _
    "=IF(AND(OR(RC[6]=""Jaguar"",RC[6]=""Land Rover""),RC[23]=""""),IF(RC[11]>RC[9],RC[11]+VLOOKUP(RC[6]&RC[5],'Lookup Table'!C[-3]:C[-1],3,FALSE),IF(RawData!RC[9]>=RawData!RC[11],RawData!RC[9]+VLOOKUP(RawData!RC[6]&RawData!RC[5],'Lookup Table'!C[-3]:C[-1],3,FALSE))),IF(AND(OR(RC[6]=""Jaguar"",RC[6]=""Land Rover""),RC[23]<>""""),RC[12],""""))"

'Jeep/Alfa
RawData.[d2].FormulaR1C1 = _
    "=IF(AND(OR(RC[7]=""Jeep"",RC[7]=""Alfa""),RC[24]=""""),IF(RC[12]>RC[10],RC[12]+VLOOKUP(RC[7]&RC[6],'Lookup Table'!C[-2]:C,3,FALSE),IF(RawData!RC[10]>=RawData!RC[12],RawData!RC[10]+VLOOKUP(RawData!RC[7]&RawData!RC[6],'Lookup Table'!C[-2]:C,3,FALSE))),IF(AND(OR(RC[7]=""Jeep"",RC[7]=""Alfa""),RC[24]<>""""),RC[13],""""))"

'Date Req Master Column
RawData.[c2].FormulaR1C1 = _
    "=IF(LEN(RC[6])<>0,RC[6],IF(LEN(RC[5])<>0,RC[5],IF(LEN(RC[4])<>0,RC[4],IF(LEN(RC[3])<>0,RC[3],IF(LEN(RC[2])<>0,RC[2],IF(LEN(RC[1])<>0,RC[1]))))))"

'Expected OOSM
RawData.[b2].FormulaR1C1 = _
    "=IF(AND(RawData!RC[9]=""BMW"",SUMPRODUCT(--ISNUMBER(SEARCH('Lookup Table'!R2C10:R14C10,RawData!RC[11])))<>0),VLOOKUP(RC[9]&""Prem""&RC[8],'Lookup Table'!C:C[1],2,FALSE),IF(AND(RC[9]=""Jeep"",SUMPRODUCT(--ISNUMBER(SEARCH('Lookup Table'!R2C12,RawData!RC[11])))<>0),VLOOKUP(RC[9]&""Wrangler"",'Lookup Table'!C[11]:C[12],2,FALSE),IF(AND(RC[9]=""Jeep"",SUMPRODUCT(--ISNUMBE" & _
    "R(SEARCH('Lookup Table'!R3C12:R4C12,RawData!RC[11])))<>0),VLOOKUP(RawData!RC[9]&""Compass"",'Lookup Table'!C[11]:C[12],2,FALSE),VLOOKUP(RC[9]&RC[8],'Lookup Table'!C:C[1],2,FALSE))))" & _
    ""

'Expected OOSD
RawData.[a2].FormulaR1C1 = "=RC[2]-7"

'Copies formulas down

LastRow = Range("j" & Rows.Count).End(xlUp).Row
rawdata[a2:i2].AutoFill Destination:=Range("a2:i" & LastRow), Type:=xlFillDefault

End Sub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...