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
展开
 我来答
上善若水OFFICE
2019-07-10 · TA获得超过3216个赞
知道大有可为答主
回答量:1431
采纳率:80%
帮助的人:701万
展开全部
可以用worksheet_change事件,把代码复制到你要操作的sheet,不是放在单独模块里面
重点是要注意先屏蔽worksheet_change对宏内事件的相应
你试试看,可以追问
Private Sub Worksheet_Change()
Application.EnableEvents = False '屏蔽事件响应
'此处加入你的代码
Application.EnableEvents = True '恢复事件响应

End Sub
更多追问追答
追问
你是回答我的问题吗?
追答
你的代码没法自动运行啊,要用private sub和worksheet_change
jw7dm8
2019-07-10 · TA获得超过4664个赞
知道大有可为答主
回答量:5794
采纳率:81%
帮助的人:298万
展开全部
我来说两句吧,首先的思路就是将不可能属于公式计算的字符替换为空字符,剩下的部分作为公式计算结果。如何去判断是不是公式计算的字符呢?可以比较其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
追问

我重新整理了一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式