excel - Faster way to look up multiple columns of data than VLookup in VBA? -


i have large data processing spreadsheet looks component number , loads relevant columns array. using vlookup function, slow function use thousands of times in loop.

my current code section:

set drng = sheets(data).range("d2:as" & imax)  on error resume next  = 1 7       jmax = sheets(shtname(i)).usedrange.rows.count     j = 3 jmax          component= sheets(shtname(i)).cells(j, 1).value2          datavar(1) = application.vlookup(component, drng, 32, false)          datavar(2) = application.vlookup(component, drng, 35, false)          datavar(3) = application.vlookup(component, drng, 42, false)          datavar(4) = application.vlookup(component, drng, 11, false)          datavar(5) = application.vlookup(component, drng, 15, false)          datavar(6) = application.vlookup(component, drng, 24, false)          datavar(7) = application.vlookup(component, drng, 18, false)          datavar(8) = application.vlookup(component, drng, 38, false)          datavar(9) = application.vlookup(component, drng, 21, false)          datavar(10) = application.vlookup(component, drng, 29, false)       next j next on error goto 0 

is there quicker way?

since want multiple columns of information same row, , know columns have information, have find row data on , can reference cells directly. can use match function determine row.

see code:

for = 1 7       jmax = sheets(shtname(i)).usedrange.rows.count     j = 3 jmax           component = sheets(shtname(i)).cells(j, 1).value2          sheets(quarter)             componentrow = worksheetfunction.match(component, .range("d:d"), 0)             datavar(1) = .cells(componentrow, 35).value2              datavar(2) = .cells(componentrow, 38).value2              datavar(3) = .cells(componentrow, 45).value2              datavar(4) = .cells(componentrow, 14).value2              datavar(5) = .cells(componentrow, 18).value2              datavar(6) = .cells(componentrow, 27).value2              datavar(7) = .cells(componentrow, 21).value2              datavar(8) = .cells(componentrow, 41).value2              datavar(9) = .cells(componentrow, 24).value2              datavar(10) = .cells(componentrow, 32).value2          end      next j  next 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -