Det är inga problem att använda OR på det sättet, under förutsättning att koden i sig inte skapar ett fel.
Det är nämligen så, att VB och alla dess släkten (vba, vbscript etc) evaluerar hela if-statementet trots att första villkoret redan gått åt pipan. Det är alltså ett "fel" (beroende på hur man ser det förstås) i språket, och man har inte mycket till val än att, i det här fallet, skriva koden på flera rader.
I .NET har man operatorerna AndAlso och OrElse, som vid användning slutar evaluera resten av uttrycket på det sätt man (i alla fall jag) skulle vilja att det fungerade i VB.
Så: sålänge inte några villkor i IF-satsen kan skapa ett fel så kan du ha hela klabbet på en rad. Annars måste du skriva på flera rader.
Som det redan är sagt innan så betyder felmeddelandet att din array har gått förbi ubound och du försöker kolla om ett värde är lika med något ändå. Du kan inte köra en array i en IF sats om ubound har passerats.
Hur ser din kod ut runt ovanstående kod? Hur håller du koll på att du inte passerar ubound?
Jo, det förstår jag! Men om du kollar koden ovanför så ska den inte köras om antingen 1 första tecknet är "#" eller 2. innehåller "--".
Om du har passerat ubound på arrayen så får du ett fel här.