Mefisto...diabeł czy anioł?
Witam
Chodzi mi o przyspieszenie kalkulacji w Excelu, może można jako¶ upro¶cić/przyspieszyć poniższy kod.
Jakie¶ pomysły?
Option Base 1
Function LICZ_PRODUKTY(produkty As Range, ilosc As Range, macierz As Range, polprodukt As Range)
wi = ilosc.Rows.Count
wm = macierz.Rows.Count
cm = macierz.Columns.Count
For licznik = 1 To wi
produkt = produkty.Range("a1").Offset(licznik - 1, 0)
ilo¶ć = ilosc.Range("a1").Offset(licznik - 1, 0)
kolumna = Application.WorksheetFunction.Match(produkt, macierz.Range("a1").Resize(1, cm), 0)
wiersz = Application.WorksheetFunction.Match(polprodukt.Value, macierz.Range("a1").Resize(wm, 1), 0)
suma = suma + Application.WorksheetFunction.index(macierz, wiersz, kolumna) * ilo¶ć
Next licznik
LICZ_PRODUKTY = suma
End Function
zanotowane.pl doc.pisz.pl pdf.pisz.pl katkaras.opx.pl
Chodzi mi o przyspieszenie kalkulacji w Excelu, może można jako¶ upro¶cić/przyspieszyć poniższy kod.
Jakie¶ pomysły?
Option Base 1
Function LICZ_PRODUKTY(produkty As Range, ilosc As Range, macierz As Range, polprodukt As Range)
wi = ilosc.Rows.Count
wm = macierz.Rows.Count
cm = macierz.Columns.Count
For licznik = 1 To wi
produkt = produkty.Range("a1").Offset(licznik - 1, 0)
ilo¶ć = ilosc.Range("a1").Offset(licznik - 1, 0)
kolumna = Application.WorksheetFunction.Match(produkt, macierz.Range("a1").Resize(1, cm), 0)
wiersz = Application.WorksheetFunction.Match(polprodukt.Value, macierz.Range("a1").Resize(wm, 1), 0)
suma = suma + Application.WorksheetFunction.index(macierz, wiersz, kolumna) * ilo¶ć
Next licznik
LICZ_PRODUKTY = suma
End Function