你的一个SUB后面有两个END SUB这样是不行的
把最后面的一个END SUB移到第二行下面即可
搞不懂你为什么一个全局变量要那样做呢
修改后应该是这样的
Public Sub reg()
Dim ydtext As String '原单元格值
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
Dim mycom As Comment
Dim ybzstr As String '原标注值
'------------------判断是否添加了批注
Set mycom = Target.Comment
If mycom Is Nothing Then Target.AddComment
'------------------编辑批注内容
ybzstr = Target.Comment.Text
Target.Comment.Text Text:=ybzstr & Chr(10) & Format(Now(), "yyyy-mm-dd hh:mm") & " 原内容: " & ydtext & "修改为: " & Target.Formula
Target.Comment.Shape.TextFrame.AutoSize = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Target = "" Then
ydtext = "空"
Else
ydtext = Target.Text
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
出现了2次,第一个Public Sub reg()没有end sub
你的代码需要重组
最后一行的End
Sub
是多余的。