Espero haber entendido lo que quieres... veamos... se supone que tienes 2 rangos de valores, cada uno de esos rangos debe analizarse y, si coincidiese con uno de los rangos que buscas, devolverá un valor de texto que puede ser "Stock" o "Laboratorio".
Vamos a por el primer grupo (-4 a 4) y (-2 a +2):
if (val(txt1.text)=< 4 and val(txt1.text)=>-4) and (val(txt2.text)<=2 and val(txt2.text)>=-2) then
text3.text = "Stock"
end if
En principio debería funcionar así. El resto de los rangos vienen a ser sustituciones en esta fórmula.
Ten en cuenta que muchos valores valdrían para todos los rangos, por ejemplo, pon en txt1 = 1 y txt2=1 sería aceptable por los cuatro rangos que apuntas. No sé si ese es el comportamiento que buscas, pero me parece que el análisis de los rangos no está bien hecho; hay demasiados valores que serían válidos para todas las fórmulas, pero según tu pedido (o lo que yo he entendido al menos) eso es lo que buscas.
Para que te des cuenta de lo que digo, traza en una recta los números desde -5 hasta + 5, y marca con un lápiz los rangos de valores que quieres analizar, verás que hay un montón de ellos que se cruzan. Sólo en los casos extremos se selecciona correctamente la variable.
Suerte.