将评论的“版本”附加到单元格中

时间:2014-11-26 09:28:54

标签: excel vba excel-vba

如果用户输入新评论,则会附加该评论,但在评论之前,我们可以通过某种方式向用户传达您修改过的评论。我建议的是以下

未获批准。 (这是单元格的初始内容) 版本1:已批准。 (此+上述评论是首次编辑后单元格的内容)
版本2:受某些条件限制。 (这+以上两条评论是第二次编辑后单元格的内容)。

请在紧迫的截止日期前帮助我理解这个逻辑! :(。我非常确定我的下面是非常糟糕的

If ActiveCell.Value = "" Then
    ActiveCell.Value = NRemark
Else
    For i = 1 To 5
       ActiveCell.Value = "Version" & i & ":" & ActiveCell.Value & vbNewLine & "Version"   & i + 1 &  ":" & NRemark
    Next i
End If

1 个答案:

答案 0 :(得分:3)

试试这个:(创建初始备注作为版本1.在最后添加一个新的备注,版本=到先前版本加1.它通过向后搜索字符串中的所有字符找到以前的版本,直到找到一个数字。只有在您的评论不包含数字的情况下才能工作!否则您将需要使用我的其他代码!)

If ActiveCell.Value = "" Then
    ActiveCell.Value = "Version 1: " & NRemark
Else
    If ActiveCell.Find("Version", LookIn:=xlValues, LookAt:=xlPart) is Nothing Then
        ActiveCell.Value = "Version 1: " & ActiveCell.Value
    Else
    End If
    For i = Len(ActiveCell.Value) to 1 Step -1
        currentChar = Mid(ActiveCell.Value, i, 1)
        If isnumeric(currentChar) = True Then Exit For
        Else
        End If
    Next i
    ActiveCell.Value = ActiveCell.Value & vbNewLine & "Version" & CInt(currentChar) + 1 & ": ", & NRemark 
    ActiveCell.WrapText = True
End If

如果您的评论包含数字字符,则:(在开头放置新版本,以便在评论中稍后有数字字符时搜索当前版本号)

If ActiveCell.Value = "" Then
    ActiveCell.Value = "Version 1: " & NRemark
Else
    If ActiveCell.Find("Version", LookIn:=xlValues, LookAt:=xlPart) is Nothing Then
        ActiveCell.Value = "Version 1: " & ActiveCell.Value
    Else
    End If
    For i = 1 To Len(ActiveCell.Value)
        currentChar = Mid(ActiveCell.Value, i, 1)
        If IsNumeric(currentChar) = True Then Exit For
        Else
        End If
    Next i
    ActiveCell.Value = "Version" & CInt(currentChar) + 1 & ": " & NRemark & vbNewLine & ActiveCell.Value
    ActiveCell.WrapText = True
End If