excel高手请进,关于函数、代码、宏的问题

先谢谢各位前辈的热心,我尽量描述清楚点1、我有一个表格,现在需要任何一行的内容有更改就会在这一行的最后一格(第N列)显示最后更改的日期。网上朋友提供了一个代码(我是菜鸟,... 先谢谢各位前辈的热心,我尽量描述清楚点
1、我有一个表格,现在需要任何一行的内容有更改就会在这一行的最后一格(第N列)显示最后更改的日期。
网上朋友提供了一个代码(我是菜鸟,完全看不懂),就是下面这个。可以倒是可以,但是使用后变的稍微有点慢,只是一丁点慢,切换字符会有点停顿,不太影响使用。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
Cells(Target.Row, 14) = Date
End If
End Sub
2、我在使用这个代码的基础上。还需要设置成如果最后更改日期距离今天超过10天,那最后更改日期的颜色则变成黄色,超过20天则变成红色。也就是说10天不更新变黄,20天不更新变红。
我自己的方法是这样的:
1.选择了一个单元格A1,输入=TODAY()
2.选择这一列--格式--条件格式--
条件1:单元格数值--小于--=$A$1-10--格式--设置字体黄色
条件2:单元格数值--小于--=$A$1-20--格式--设置字体红色
也是可以使用,可以达到我的要求。但是使用后变得巨慢,切换光标要等好久,好慢,CPU占用100%,根本没法用。
请问这两种方法有什么问题吗?还有更好的方法吗?我感觉慢的主要原因就是我说的第二点,因为使用它后才变得巨慢的。而且第二点是我的原创,我瞎搞的,没想到能用。
怎么办?有其它方法吗?麻烦说细点,谢谢啊!
拜托各位前辈指点迷津,小弟感激不尽!
展开
 我来答
愚奥yx
2010-12-30 · TA获得超过380个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:253万
展开全部
建议:
1、在条件中直接用Today()函数,A1就不占用了;
2、条件1改成:介于 "=Today()-10" 和 "=Today()-20"
3、条件2改成:小于 "=Today()-20"

我把事件函数改成这样了,只看前13列有否变化,应该更合理些:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column < 14 Then
Cells(Target.Row, 14) = Date
End If
End Sub

直接修改14列的日期可以看到效果。
ddevg42
2010-12-30 · TA获得超过137个赞
知道答主
回答量:92
采纳率:0%
帮助的人:72.9万
展开全部
EXCEL中,按ALT+F11, 打开VB编辑器
点菜单中的"插入"——"模块"
然后把下面的代码贴进去..

如果数据在A列, 请在B列输入公式 =fch(a1)
然后向下拉,直到全部B列都有和A列对应的公式,
然后对B列进行排序就OK了..

模块代码如下:

Function fch(text) As String
Dim i%, j%, m%
i = Len(text)
fch = ""
For j = 1 To i
m = Asc(Mid(text, j, 1))
If m <> -24128 And m <> -23636 And m <> -22846 Then
If m < 0 Or m > 255 Then
fch = Mid(text, j, 1)
Exit Function
End If
End If
Next
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式