Я пытаюсь вставить некоторые значения и формулы, используя блок WITH.Простые формулы назначаются нормально, но когда он попадает в первую множественную формулу (та, что в .Range ("J2"), он выдает ошибку 1004 приложения или объекта. Я предполагаю, что что-то не так с моимСинтаксис, но я не вижу, что. Я уверен, что я помню что-то из лет назад о необходимости использовать амперсанды для разделения формулы в коде, но не уверен. Заранее спасибо.
Я посмотрелво всех других решениях здесь и на некоторых других сайтах, посвященных этой проблеме, но ни одно из них не кажется достаточно похожим, чтобы ответить на мой вопрос.
With MainPg
lstrw = .Cells(.Rows.Count, "A").End(xlUp).Row
'.Range("A1") = "article"
.Range("B1") = "season"
.Range("C1") = "bu name"
.Range("D1") = "dept"
.Range("E1") = "range name"
.Range("F1") = "item name"
.Range("G1") = "stroke"
.Range("H1") = "colour"
.Range("I1") = "stroke name"
.Range("J1") = "newness"
.Range("K1") = "equivalent stroke/colour"
.Range("L1") = "pre-lockdown category"
.Range("M1") = "post-lockdown category"
.Range("B2").Formula = "='Upload'!A2"
.Range("C2").Formula = "='Upload'!F2"
.Range("D2").Formula = "='Upload'!G2"
.Range("E2").Formula = "='Upload'!K2"
.Range("F2").Formula = "='Upload'!L2"
.Range("G2").Formula = "='Upload'!H2"
.Range("H2").Formula = "='Upload'!J2"
.Range("I2").Formula = "='Upload'!M2"
.Range("J2").Formula = "=IF(INDEX('Upload'!C:C," & "MATCH([@article],'Upload'!E:E,0))=43597,""Y"",""N"")"
.Range("L2").Formula = "=IF(LEN([@[Equivalent Stroke/Colour]])<1,INDEX('Upload'!O:O,MATCH([@article],'Upload'!E:E,0)),INDEX('LastYear'!J:J,MATCH([@[Equivalent Stroke/Colour]],'LastYear'!I:I,0)))"
.Range("M2").Formula = "=IF([@[pre lockdown category]]=""UNCATEGORISED"",""REGULAR"",[@[pre lockdown category]])"
.Range("B2:M2").Copy
.Range("B3:M" & lstrw).PasteSpecial.xlPasteFormulas
Set rng1 = Range("A1:M" & lstrw)
Set table1 = .ListObjects.Add(xlSrcRange, rng1, , xlYes)
table1.TableStyle = "TableStylemedium13"
End With