vba excel循环查询运行的时候非常慢,怎么回事,语句如下

vbaexcel循环查询运行的时候非常慢,怎么回事,语句如下Fordc=2Tom-1fir=Cells(dc,1)Fordcx=dc+1Tomsce=Cells(dcx,... vba excel循环查询运行的时候非常慢,怎么回事,语句如下

For dc = 2 To m - 1
fir = Cells(dc, 1)
For dcx = dc + 1 To m
sce = Cells(dcx, 1)
If sce = fir Then
rows(dcx).delete
End If
hl_count‘删除后,用于重新计算有字符的行的数量m的子过程sub
Next
Next

是我的m大致为500的时候,运行时间非常长,语句没有问题,要知道我实际工作中m=1万多
但是excel开内存很少,运行很慢,cpu:4100;主板:映泰880GZ,内存8G,内存运行不上去
为什么会这么非常慢?
展开
 我来答
归萱pN
2012-08-26 · TA获得超过990个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1497万
展开全部
电脑太好,代码太差
1万行5s之内肯定没有问题,1s也很正常
把你的问题、表格的格式、数据的位置等写清楚我直接给你写代码,我不太喜欢修改别人的代码。
更多追问追答
追问
列1中所有有字符的单元格比较,找到字符相同的,删除字符重复行,只留下一个
追答
'试一下速度:
Sub test()
Dim i As Long, dic, temp As String
Application.ScreenUpdating = False
Set dic = CreateObject("scripting.dictionary")
For i = 1 To Range("a65536").End(xlUp).Row
temp = Cells(i, 1)
If Not dic.exists(temp) Then dic.Add temp, 1 Else dic(temp) = dic(temp) + 1
Next
For i = Range("a65536").End(xlUp).Row To 1 Step -1
temp = Cells(i, 1)
If dic(temp) > 1 Then
dic(temp) = dic(temp) - 1
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
2724421
2012-08-26 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:949万
展开全部
Sub 删除重复()
Application.ScreenUpdating = False
endrow = Range("A65536").End(xlUp).Row
h = 1
Do While h <= endrow
h = h + 1
For i = endrow To h + 1 Step -1
If Cells(h, 1).Value = Cells(i, 1).Value Then
Rows(i).Delete
endrow = endrow - 1
End If
Next
Loop
Application.ScreenUpdating = True
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ah_wjh
2012-08-26 · TA获得超过802个赞
知道小有建树答主
回答量:1123
采纳率:50%
帮助的人:980万
展开全部
计算行的数量语句不知你用的什么方式
如果用单元格循环就太慢了,直接用END公式取
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式