vba - How to check if a cell is invalid, and set a default value if it's invalid? -


i have cell has named range list validation. want this: check if current contents of cell violate validation, , if so, set cell first value in named range list. here's i've tried far:

private sub defaultifinvalid(rng range)  dim formula string formula = rng.validation.formula1 formula = mid(formula, 2)  'remove equal sign on front if range(formula).find(rng.value) nothing     rng.value = range(formula)(1).value end if   end sub 

but line:

if range(formula).find(rng.value) nothing 

gives following error:

method 'range' of object '_worksheet' failed 

how can perform check/setting default?

edit: if it's helpful, validation dynamic formula selects several different named ranges based on contents of 1 of cells. formatted here clarity:

=if('on-call search form'!$c$6="on-call contact",oncallgroup, if(or('on-call search form'!$c$6="district",       'on-call search form'!$c$6="division"),    regionalgroup,functiongroup)) 

oncallgroup, regionalgroup, , functiongroup static ranges, e.g., oncallgroup is:

=selections!$s$2:$s$7 

as follow comments, 1 works:

dim formula string dim rngnew range  formula = rng.validation.formula1 set rngnew=evaluate(formula) if rngnew.find(rng.value) nothing     'do end if 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -