excel - VBA method 'range of object' _Worksheet failed Shapes.Range(Array -


i trying move shapes on 2nd sheet based on values of 1st sheet. keep getting error line....shapes.range(array(.... below code.

sub graphics_mover() ' graphics_mover macro  dim swl_row double, pwl_row double dim rng variant, integer, colnum integer, data worksheet, pict worksheet set data = thisworkbook.worksheets(1) 'set pict = thisworkbook.worksheets(2) set pict = workbooks("well pictographs2.xlsm").worksheets(2) = 1 = 1 27     swl_row = data.cells(2, + 1).value     swl_row = int(swl_row / 50 + 1)     pict.shapes.range(array("isosceles triangle " & i)).select     selection.top = swl_row * 15 + 4      pwl_row = data.cells(3, + 1).value     pwl_row = int(pwl_row / 50 + 1)     pict.shapes.range(array("freeform " & i)).select     selection.top = pwl_row * 15 + 1     = + 1 next     '-------------------------- end sub 

the line causing error is:

    pict.shapes.range(array("freeform " & i)).select 

i appreciate solutions.

i'm curious value of i when crash. code largely same recorded macro syntax correct if named shape(s) exist.

first run small snippet output of shapes' names vbe's immediate window (ctrl+g).

sub list_shapes()     dim long     workbooks("well pictographs2.xlsm").worksheets(2)         = 1 .shapes.count             debug.print .shapes(i).name         next     end end sub 

when in vbe, tap ctrl+g open immediate window , check output. make sure have isosceles triangle 1 through isosceles triangle 27 (inclusive).

next run through modification of macro.

sub graphics_mover()     dim swl_row double, pwl_row double     dim rng variant, integer, colnum integer, data worksheet, pict worksheet      on error resume next     set data = thisworkbook.worksheets(1)      workbooks("well pictographs2.xlsm").worksheets(2)         = 1 27             swl_row = data.cells(2, + 1).value             swl_row = int(swl_row / 50 + 1)             if not .shapes("isosceles triangle " & i) nothing                 .shapes("isosceles triangle " & i).top = swl_row * 15 + 4                 debug.print "moved " & .shapes("isosceles triangle " & i).name             end if              pwl_row = data.cells(3, + 1).value             pwl_row = int(pwl_row / 50 + 1)             if not .shapes("freeform " & i) nothing                 .shapes("freeform " & i).top = pwl_row * 15 + 1                 debug.print "moved " & .shapes("freeform " & i).name             end if         next     end end sub 

i'm not big fan of using on error resume next dealing object avoiding detection. vbe's immediate window report shapes move.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -