程序段:
Function ConvDate(S As String) As String
Dim k As Integer, s1 As String
k = Len(S)
Dim ss(6) As String
Dim sTmp1 As String, sTmp2 As String
Dim iTmp1 As Integer, iTmp2 As Integer
s1 = ""
sTmp1 = Left(S, 1)
sTmp2 = Mid(S, 2, 1)
iTmp1 = Asc(sTmp1) - 67 '->是这里提示错误'
iTmp2 = Asc(sTmp2) - 75
ss(1) = 2 + iTmp1 '时间的年份的十位,只会0或1
ss(2) = 0 + iTmp2 '时间的年份的个位,会6,7,8,9,0,1
ss(3) = 1 + iTmp1 '时间的月份的十位,只会0或1
ss(4) = 1 + iTmp2 '时间的月份的个位,会0~9
ss(5) = 0 + iTmp1 '时间的日的十位,会0,1,2,3
ss(6) = 2 + iTmp2 '时间的日的个位,会0~9
For k = 3 To Len(S)
s1 = s1 & (CInt("&H" & Mid$(S, k, 1)) - ss(k - 2))
Next k
ConvDate = "20" & s1
End Function
Function ConvDate(S As String) As String
Dim k As Integer, s1 As String
k = Len(S)
Dim ss(6) As String
Dim sTmp1 As String, sTmp2 As String
Dim iTmp1 As Integer, iTmp2 As Integer
s1 = ""
sTmp1 = Left(S, 1)
sTmp2 = Mid(S, 2, 1)
iTmp1 = Asc(sTmp1) - 67 '->是这里提示错误'
iTmp2 = Asc(sTmp2) - 75
ss(1) = 2 + iTmp1 '时间的年份的十位,只会0或1
ss(2) = 0 + iTmp2 '时间的年份的个位,会6,7,8,9,0,1
ss(3) = 1 + iTmp1 '时间的月份的十位,只会0或1
ss(4) = 1 + iTmp2 '时间的月份的个位,会0~9
ss(5) = 0 + iTmp1 '时间的日的十位,会0,1,2,3
ss(6) = 2 + iTmp2 '时间的日的个位,会0~9
For k = 3 To Len(S)
s1 = s1 & (CInt("&H" & Mid$(S, k, 1)) - ss(k - 2))
Next k
ConvDate = "20" & s1
End Function
iTmp2 = Asc(sTmp2) - 75
---------------------------------------------
如果sTmp1或sTmp2为空(就是sTmp1=""),肯定会出现楼主所说的错误