this
If s(i) = "a" Then
ElseIf s(i) = "A" Then
ElseIf s(i) = "e" Then
ElseIf s(i) = "E" Then
ElseIf s(i) = "i" Then
ElseIf s(i) = "I" Then
ElseIf s(i) = "o" Then
ElseIf s(i) = "O" Then
ElseIf s(i) = "U" Then
ElseIf s(i) = "u" Then
no = no + 1
End If
is truly horrible !
shouldnt vb.net be
if (some condition) then (do something)
elseif (some other condition) then (do something)
....
had you learned to use a debugger you'd likely see what your issue(s) are
how about a better way ?
declare a constant string (this is not in any language in particular)
constant string vowels = "AaEeIiOoUu";
and then in your loop do a test like
if vowels.contains(s[i]) then no = no + 1;
there's a better extension to what Ive shown you btw, along the lines of :-
constant string vowels = "AEIOU";
if vowels.contains(uppercase(s[i])) then no = no + 1;
I'll leave it up to you to properly code either of those in VB.NET