I have the following Java code:
Code:
public static void main(String [ ] args)
	{
		String isbn = "9781590387474";
		if (isbn.length() == 13 && isbn.indexOf("978") == 0)
		{
		  isbn = isbn.substring(3,12);
		  int xsum = 0;

		  for (int i = 0; i < 9; i++)
		  {
		      xsum += (10 - i) * Character.getNumericValue(isbn.charAt(i));
		  }

		  xsum %= 11;
		  xsum = 11 - xsum;

		  String x_val = String.valueOf(xsum);

		  switch (xsum)
		  {
		      case 10: x_val = "X"; break;
		      case 11: x_val = "0"; break;
		  }

		  isbn += x_val;
		}
		System.out.println(isbn);		
	}
I tried converting it to VBA myself, and got this:
Code:
Function UPCtoISBN(strUPCin As String) As String
    Dim strTemp As String
    If Len(strUPCin) = 13 And Left(strUPCin, 3) = "978" Then
        
        strTemp = Mid(strUPCin, 3, 10)
        Dim xsum As Integer
        xsum = 0
        For x = 1 To 9
            xsum = xsum + ((10 - x) * Mid(strTemp, x, 1))
        Next x
        xsum = xsum Mod 11
        xsum = 11 - xsum
        Select Case xsum
            Case 10
                strTemp = strTemp & "X"
            Case 11
                strTemp = strTemp & "0"
        End Select
        
    End If
    UPCtoISBN = strTemp
End Function
Unfortunately, it does not work.

Anyone willing to help fix it?

Thanks!