Попробуйте после изменения, чтобы они соответствовали вашим собственным диапазонам и именам листа.
sub minCapacities()
dim i as long, arr as variant, dict as object
set dict = createobject("scripting.dictionary")
dict.comparemode = vbtextcompare
with worksheets("sheet1")
arr = .range(.cells(2, "A"), .cells(.rows.count, "B").end(xlup)).value2
end with
for i=lbound(arr, 1) to ubound(arr, 1)
if dict.exists(arr(i, 1)) then
dict.item(arr(i, 1)) = application.min(dict.item(arr(i, 1)), arr(i, 2))
else
dict.item(arr(i, 1)) = arr(i, 2)
end if
next i
with worksheets("sheet2")
.cells(1, "A").resize(1, 2) = array("Manufactuer", "Min Capacity")
.cells(2, "A").resize(dict.count, 1) = application.transpose(dict.keys)
.cells(2, "B").resize(dict.count, 1) = application.transpose(dict.items)
end with
end sub