У меня есть следующие значения в таблице:Excel VBA: Scripting.Dictionary Расчеты
Printer Name | Pages | Copies
HP2300 | 2 | 1
HP2300 | 5 | 1
Laser1 | 2 | 2
Laser1 | 3 | 4
HP2300 | 1 | 1
Как я могу получить общее количество напечатанных страниц (страницы * копий) на каждый принтере, как это:
Printer Name | TotalPages |
HP2300 | 8 |
Laser1 | 16 |
мне удалось создать список подсчета количества раз принтер был использован для печати:
Sub UniquePrints()
Application.ScreenUpdating = False
Dim Dict As Object
Set Dict = CreateObject("scripting.dictionary")
Dim varray As Variant, element As Variant
varray = Sheets("Prints").Range("E:E").Value
For Each element In varray
If Dict.exists(element) Then
Dict.Item(element) = Dict.Item(element) + 1
Else
Dict.Add element, 1
End If
Next
Sheets("Stats").Range("D6").Resize(Dict.Count, 1).Value = _
WorksheetFunction.Transpose(Dict.keys)
Sheets("Stats").Range("E6").Resize(Dict.Count, 1).Value = _
WorksheetFunction.Transpose(Dict.items)
Application.ScreenUpdating = True
End Sub
Как я могу рассчитать полные страницы для каждой печати (строки) (страницы * копии) и сохранить это в словаре вместо добавления 1?
Спасибо за вашу помощь
Вы думали про Сводная таблица? –
Через VBA? Я предпочел бы сделать это как скрипт – r1pster
нет, просто на другом листе, используя исходный лист в качестве источника данных. Просто кажется слишком сложным сделать это как скрипт. Альтернативно используйте формулу в следующем столбце, в котором вычисляется количество страниц для каждой строки. –