Я пытаюсь использовать макрос для поиска определенных терминов и подсчета количества вхождений этого термина в этом столбце. Я использую этот макрос, копируя и вставляя кнопку макроса в свой активный лист, так как имя рабочего листа, к которому я буду его применять, всегда будет отличаться / изменяться (каждый лист назван на месяц года, поэтому он будет меняется каждый раз, когда у меня есть данные нового месяца). Длина столбца также является переменной с каждым месяцем. Раньше это работало без проблем, но недавно я начал получать сообщение об ошибке, определяемой приложением 1004 или объектом, в строке, которая гласит:
.Range("P7:R7").Formula = strFormulas
Мои формулы слишком длинные? Любая помощь будет принята с благодарностью. Вот весь код, который я использую для этого раздела:
With ActiveSheet.Columns("P:T")
.ColumnWidth = 10
End With
Range("P6").Value = "DeptShortName"
Range("Q6").Value = "IfCAN"
Range("R6").Value = "Business Unit Name"
Range("S6").Value = "Business Unit"
Dim lastRow As Long
'Set formulas to appear in columns 1, 2, 3 after column O
Dim strFormulas(1 To 3) As Variant
'Set last row to fill for columns P-R based on variable length of column O
lastRow = Range("O" & Rows.Count).End(xlUp).Row
'Auto fill formulas defined below to columns 1,2, 3 after column O, so columns P, Q, R
With ActiveSheet
strFormulas(1) = "=IF(ISNUMBER(SEARCH(""CCS"",O7)),""CCS"",IF(ISNUMBER(SEARCH(""DSO"",O7)),""DSO"",IF(ISNUMBER(SEARCH(""ALC"",O7)),""ALC"",IF(ISNUMBER(SEARCH(""RCD"",O7)),""RCD"",IF(ISNUMBER(SEARCH(""CMNA"",O7)),""CMNA"",IF(ISNUMBER(SEARCH(""CRNA"",O7)),""CRNA"",IF(ISNUMBER(SEARCH(""CCSCAN"",O7)),""CCSCAN"",IF(ISNUMBER(SEARCH(""CARLYLE"",O7)),""CARLYLE"",IF(ISNUMBER(SEARCH(""CRS"",O7)),""CRS"",IF(ISNUMBER(SEARCH(""ICP"",O7)),""ICP"",IF(ISNUMBER(SEARCH(""MISCELLANEOUS"",O7)),""MISC"",IF(ISNUMBER(SEARCH(""NAO"",O7)),""NAO DIST"",IF(ISNUMBER(SEARCH(""NATIONAL"",O7)),""NATIONAL"",""""))))))))))))"
strFormulas(2) = "=IF(ISNUMBER(SEARCH(""CCSCAN"",O7)),""CAN"",IF(ISNUMBER(SEARCH(""ALC 0211"",O7)),""CAN"",IF(ISNUMBER(SEARCH(""ALC 0218"",O7)),""CAN"",IF(ISNUMBER(SEARCH(""ALC 0251"",O7)),""CAN"",""""))))"
strFormulas(3) = "=CONCATENATE(P7,Q7)"
.Range("P7:R7").Formula = strFormulas
.Range("P7:R" & lastRow).FillDown
End With