У меня есть список поставщиков услуг, которые предлагают определенные услуги. Подобные услуги могут также предлагаться различными поставщиками услуг. я сталкиваюсь с проблемой, чтобы отобразить сумму на основе услуг, выбранных пользователями. Существует 3 таблицы.
Таблица 1 - Услуги, добавленные в корзину (пользователь может добавить количество)
Таблица 2 - Поставщик услуг, связанный с категориями, добавленными в корзину - задача состоит в том, чтобы показать общую стоимость.
Таблица 3 - Необработанные данные с ценами, указанными поставщиками услуг.
До сих пор я только что добавил таблицу 1 и таблицу 2 в массив и теперь он должен соответствовать таблице 3
Sub Button5_Click()
Set customer = ThisWorkbook.Sheets("CUSTOMER")
Set provider = Worksheets("PROVIDER_SETTINGS")
i = 0
NumSP = customer.Cells(Rows.Count, "I").End(xlUp).Row
Rng = "I1:I" & NumSP
j = NumSP - Excel.WorksheetFunction.CountBlank(customer.Range(Rng))
NumService = customer.Cells(Rows.Count, "E").End(xlUp).Row
Rng = "E1:E" & NumService
k = NumService - Excel.WorksheetFunction.CountBlank(customer.Range(Rng))
Dim ServiceProvider() As String ' declare array for service provider
Dim Service() As String
On Error Resume Next
ReDim ServiceProvider(0)
ReDim Service(0)
'service providers inserted into array
For x = 3 To j + 2
sp = customer.Cells(x, 9).Value
ServiceProvider(i) = sp
i = i + 1
ReDim Preserve ServiceProvider(i)
Next
c = 0
'services inserted into array
For y = 3 To k + 2
noservice = customer.Cells(y, 5).Value
Service(c) = noservice
c = c + 1
ReDim Preserve Service(c)
Next
Set Arg1 = provider.Range("H2:H100")
Set Arg2 = provider.Range("B2:B100")
Set Arg3 = provider.Range("C2:C100")
Set Arg4 = provider.Range("I2:I100")
pir = 3
For Pi = 0 To UBound(ServiceProvider)
Totalsum = 0
For pj = 0 To UBound(Service)
Count_1 = Application.WorksheetFunction.SumIfs(Arg1, Arg2, ServiceProvider(Pi), Arg3, Service(pj), Arg4, "Y")
Totalsum = Totalsum + Count_1
Next
customer.Cells(pir, 11).Value = Totalsum
pir = pir + 1
Next
End Sub