excel VBA高手请进,关于让表格自动刷新的问题~
下面的代码,每次要双击单元格才会刷新结果,我需要任何一个单元格改变、复制黏贴都刷新一下结果SubSortArray(arrAsVariant)DimiAsLong,jAs...
下面的代码,每次要双击单元格才会刷新结果,我需要任何一个单元格改变、复制黏贴 都刷新一下结果
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 展开
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 展开
2个回答
展开全部
可以用worksheet_change事件,把代码复制到你要操作的sheet,不是放在单独模块里面
重点是要注意先屏蔽worksheet_change对宏内事件的相应
你试试看,可以追问
Private Sub Worksheet_Change()
Application.EnableEvents = False '屏蔽事件响应
'此处加入你的代码
Application.EnableEvents = True '恢复事件响应
End Sub
重点是要注意先屏蔽worksheet_change对宏内事件的相应
你试试看,可以追问
Private Sub Worksheet_Change()
Application.EnableEvents = False '屏蔽事件响应
'此处加入你的代码
Application.EnableEvents = True '恢复事件响应
End Sub
更多追问追答
追问
你是回答我的问题吗?
追答
你的代码没法自动运行啊,要用private sub和worksheet_change
展开全部
我来说两句吧,首先的思路就是将不可能属于公式计算的字符替换为空字符,剩下的部分作为公式计算结果。如何去判断是不是公式计算的字符呢?可以比较其ASC码的范围。这里对计算式的文本就有一定的要求了,比如不能出现“3楼的面积是长31米*宽10米”这样的,因为3楼的3字将难以被判断不是公式的一部分。另外一定要用变量的话,变量名称尽可能为单字母,便于判断其属性下面以H6的值“高度2*长度3”的结果填入I6为例,代码如下: Sub aa()Dim str As Stringstr = [H6]For i = Len(str) To 1 Step -1 If Asc(Mid(str, i, 1)) > 100 Or Asc(Mid(str, i, 1)) < 0 Then str = Application.WorksheetFunction.Replace(str, i, 1, "") End If Next Range("I6").Formula = "=" & strEnd Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询