Excel VBA if statement 相关问题
超级感谢回答!无比感激!
问题遇到的现象和发生背景
问题:if statement 运行后不产出结果
背景:
input是一整串字符串,类似于T02CG338 或者 8502SEH778。首先根据开头分成两类:T开头的和数字开头的。然后取对应字符串中的第四位(T开头)或者第六位(85开头),使用function对应出信息,放入output列。
问题相关代码,请勿粘贴截图
Function ns(x)
If x = "A" Then
ns = "Size 00"
ElseIf x = "B" Then
ns = "Size 0"
ElseIf x = "C" Then
ns = "Size 1"
ElseIf x = "D" Then
ns = "Size 2"
ElseIf x = "E" Then
ns = "Size 3"
ElseIf x = "F" Then
ns = "Size 4"
ElseIf x = "G" Then
ns = "Size 5"
ElseIf x = "H" Then
ns = "Size 6"
ElseIf x = "J" Then
ns = "Size 7"
End If
End Function
Sub nemasize()
Dim i, findc, outputc
For i = 6 To Range("a1048576").End(xlUp).Row
'findc is the catalog_number column
Set findc = Range("H" & i)
'outputc is where the output should goto
Set outputc = Range("P" & i)
'如果开头是T,那么截取字符串第四位的字母
If InStrRev(findc, "T", 2) <> 0 Then
y = Mid(findc, 4, 1)
'根据字母对应的Size信息放入第P列
outputc = ns(y)
'如果开头是8502或者8702,截取第六位的字母
ElseIf Left(findc, 4) = "8502" Or "8702" Then
y = Mid(findc, 6, 1)
outputc = ns(y)
End If
Next
End Sub
运行结果及报错内容
结果:没有报错,但是运行后应该有内容的列是空的。
非常感谢您的回答啦!