Excel如果单元格在数字附近包含“ - ”则移动

时间:2017-02-18 11:37:15

标签: excel vba excel-vba

我需要做的是基本上写课程编号。有3个colomns。 enter image description here

第二列是由一个名为LessonsLeft的自定义公式运行的,该公式是由我在stackoverflow上的第二个线程完成的,它是

    Function LessonsLeft(rng As Range) As String
If rng.Count > 1 Then Exit Function
Dim spltStr() As String
Dim i As Long
spltStr = Split(rng.Value, ",")
LessonsLeft = ",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,"
For i = LBound(spltStr) To UBound(spltStr)
    LessonsLeft = Replace(LessonsLeft, "," & spltStr(i) & ",", ",")
Next i
LessonsLeft = Mid(LessonsLeft, 2, Len(LessonsLeft) - 2)
End Function

我需要做的是添加另一个第三个colomn,这是我的学生第一次尝试的课程,但他们无法通过考试。

我希望数据如何存在,就是在第一列中的数字附近写一个“ - ”或“+”,这样数字就会移到第三列。

怎么做?

1 个答案:

答案 0 :(得分:2)

使用此功能

Function LessonsAttemptedButNotDone(rng As Range) As String
    If rng.Count > 1 Then Exit Function
    Dim spltStr() As String, lessonDone As String
    Dim i As Long

    spltStr = Split(rng.Value, ",")
    For i = LBound(spltStr) To UBound(spltStr)
        lessonDone = spltStr(i)
        If Right(lessonDone, 1) = "-" Then
            lessonDone = Left(lessonDone, Len(lessonDone) - 1)
            LessonsAttemptedButNotDone = LessonsAttemptedButNotDone & lessonDone & ","
        End If
    Next
    If LessonsAttemptedButNotDone <> "" Then LessonsAttemptedButNotDone = Left(LessonsAttemptedButNotDone, Len(LessonsAttemptedButNotDone) - 1)
End Function