Your question is not complete.
If the "6BC" is present in the string, your program will work fine.
But if the "6BC" is absent, then your "strMyString=strMyString.Substring(19)" returns empty string, that is why "strMyString=strMyString.Substring(2, 1).ToString" throws error as there is no index 2.
There is no need to use ToString in the first place, but if you insist, then
ToString and ToString() are the same as in VB.NET you can omit the parentheses on any method that has no argument.
If your intention is to check if there is any "B" exists after index 19, then you can use lastindexof like the following example:
dim strMyString as string ="ABC POR BCS KOK SSS 6aC"
dim index as integer =strMyString.LastIndexOf("B")
If index > 19 Then
Console.WriteLine("There is B after index 19")
Else
Console.WriteLine("There is no B after index 19")
End If
Test with B and no B and see how it works.