Здравствуйте, просьба подсказать почему возникает ошибка при попытке подсчета формулы СуммЕсли(SummIf) в VBA. Сейчас показывает ошибку 438 (на сколько я понимаю я не правильно прописываю следующую строку:
Cells(CambRow, 20) = WorksheetFunction.SummIf(Range(Cells(2, 15), Cells(FIOLastRow, 17)), Cells(CambRow, 19), Range("Summ"))
Просьба указать выход из этого положения как правильно использовать эту функцию в VBA.
Ниже прикладываю файл пример.
Всем спасибо за активное внимание.
P.S. Также очень буду благодарным за описания как правильно перевести с помощью ДатаЗнач (DateValue) значение Дат вытянутые из базы 1С…. (желательно хотя бы пример).
Cells(CambRow, 20) = WorksheetFunction.SummIf(Range(Cells(2, 15), Cells(FIOLastRow, 17)), Cells(CambRow, 19), Range("Summ"))
Просьба указать выход из этого положения как правильно использовать эту функцию в VBA.
Ниже прикладываю файл пример.
Всем спасибо за активное внимание.
Код |
---|
Option Explicit Sub Count_And_Print() Dim CambRow As Integer Dim LastRow2 As Long Dim FIOLastRow As Long Dim FIOLastRow2 As Long Dim x As Integer Application.ScreenUpdating = False Sheets("Злитий").Activat LastRow2 = Range("N65000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="Date1", RefersTo:=Range(Cells(2, 14), Cells(LastRow2, 14)) ActiveWorkbook.Names.Add Name:="Agent", RefersTo:=Range(Cells(2, 15), Cells(LastRow2, 15)) ActiveWorkbook.Names.Add Name:="Docum", RefersTo:=Range(Cells(2, 16), Cells(LastRow2, 16)) ActiveWorkbook.Names.Add Name:="Summ", RefersTo:=Range(Cells(2, 17), Cells(LastRow2, 17)) '''' Попытка перевести дату(текст) в дату (с помощью формата).. - результата нет! Range("Date1").Select Selection.NumberFormat = "0.00" FIOLastRow = Cells(65000, 15).End(xlUp).Row Range("Agent").Select Selection.Copy Cells(2, 19).Select ActiveSheet.Paste FIOLastRow2 = Cells(65000, 19).End(xlUp).Row ActiveWorkbook.Names.Add Name:="Agent2", RefersTo:=Range(Cells(2, 19), Cells(FIOLastRow2, 19)) ActiveWorkbook.Names.Add Name:="Summ", RefersTo:=Range(Cells(2, 17), Cells(FIOLastRow, 17)) ActiveSheet.Range("Agent2").RemoveDuplicates Columns:=1, Header:=xlNo For CambRow = 2 To FIOLastRow2 ' Ошибка 438 Cells(CambRow, 20) = WorksheetFunction.SummIf(Range(Cells(2, 15), Cells(FIOLastRow, 17)), Cells(CambRow, 19), Range("Summ")) ' сейчас не могу сделать подсчет... Next CambRow Application.ScreenUpdating = True End Sub |
P.S. Также очень буду благодарным за описания как правильно перевести с помощью ДатаЗнач (DateValue) значение Дат вытянутые из базы 1С…. (желательно хотя бы пример).