应today要求改动了一下。
- Sub grf()
- arr = Range("a1").CurrentRegion
- For i = 1 To UBound(arr)
- x = arr(i, 1)
- If Len(x) = 5 Then
- arr(i, 1) = Format(x, "yyyymm")
- Else
- x = Replace(x, "/", "-")
- p = InStr(x, "-")
- If p > 0 Then
- arr(i, 1) = Format(Split(x, "-")(0), "0000") & Format(Split(x, "-")(1), "00")
- ElseIf Len(x) > 5 Then
- y = Val(Mid(x, 5, 2))
- s1 = Left(x, 4) & "0" & Mid(x, 5, 1)
- s2 = Left(x, 6)
- If y > 12 Then
- arr(i, 1) = s1
- Else
- If Len(x) = 6 Or Len(x) = 8 Then
- arr(i, 1) = s2
- Else
- yn = MsgBox("请依据源目标" & "A" & i & "=" & arr(i, 1) & "选择结果" & vbCrLf & vbCrLf & _
- "是(Y): " & s1 & vbCrLf & vbCrLf & _
- "否(N): " & s2, vbYesNo, "提示")
- arr(i, 1) = IIf(yn = vbYes, s1, s2)
- End If
- End If
- End If
- End If
- Next
- Columns("e:e").Clear
- Range("e1").Resize(UBound(arr)) = arr
- End Sub
复制代码 |