Здравствуйте, просьба подсказать почему возникает ошибка при попытке подсчета формулы СуммЕсли(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С…. (желательно хотя бы пример).