下面的代码,每次要双击单元格才会刷新结果,我需要任何一个单元格改变、复制黏贴 都刷新一下结果
Sub SortArray(arr As Variant)
Dim i As Long, j As Long
Dim temp As Variant
Dim hasExchanged As Boolean
For i = LBound(arr) To UBound(arr) - 1
hasExchanged = False
For j = i + 1 To UBound(arr)
If Len(arr(i, kLastCol)) < Len(arr(j, kLastCol)) Then
' 交换变量名对应的数值
temp = arr(i, 1)
arr(i, 1) = arr(j, 1)
arr(j, 1) = temp
' 交换变量名
temp = arr(i, kLastCol)
arr(i, kLastCol) = arr(j, kLastCol)
arr(j, kLastCol) = temp
hasExchanged = True
End If
Next j
If Not hasExchanged Then Exit For
Next i
End Sub
重点是要注意先屏蔽worksheet_change对宏内事件的相应
你试试看,可以追问
Private Sub Worksheet_Change()
Application.EnableEvents = False '屏蔽事件响应
'此处加入你的代码
Application.EnableEvents = True '恢复事件响应
End Sub追问
你是回答我的问题吗?
追答你的代码没法自动运行啊,要用private sub和worksheet_change
把你上面的代码,除了头尾,复制到此处加入你的代码这行
但宏不是像sub一样放在模块里,要放到sheet1类似的工作表
追问我只截取了最下面的一段~ 我主要是下面的这段功能,不能自动更新,要双击单元格
改了?不是你描述的自动更新?
我重新整理了一下