要分别做2个排序。
第1个排序是:先用手工在AC2:AC500输入LENB公式,求得字符数量(因要按字符数量排序)再用VBA代码完成排序,Range("AA2:AC500").Sort Key1:=Range("AC31"), Key2:=Range("AA31") ,后删除附列。
第2个排序同第1个排序原理一样,先用手工在AF2:AF10000输入公式用&连接符,求得AG与AH连接后所得到的新单元格,再用VBA代码完成排序,,后删除附列。
请问有更好更快的方法吗?如果用代码来完成附列,那么代码应该怎样写,本人对VBA是刚学,现在没有财富值贡献,求求帮个忙, 谢了.谢了。
请问用公式快,还是用VBA代码快?
答案:4 悬赏:40 手机版
解决时间 2021-04-15 16:55
- 提问者网友:富士山上尢
- 2021-04-15 08:14
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-04-15 08:40
你即然已经用公式求得字符数了,就选择你的数据区域,按这列排序就行了。为什么还要写代码?如果是写了VBA代码,就不用输入公式了。直接写代码
全部回答
- 1楼网友:过活
- 2021-04-15 09:56
1500
Cells(i, 32) = Cells(i, 31) / Application.WorksheetFunction.CountA(Range("A" & i & ":G" & i))
Next
End Sub
这个更快一点:
Sub bbb()
Dim DataRange As Variant
Dim TempArray(1 To 1497, 1 To 1) As Double
DataRange = Range("AE4:AE1500").Value
For i = 4 To 1500
TempArray(i - 3, 1) = DataRange(i - 3, 1) / Application.WorksheetFunction.CountA(Range("A" & i & ":G" & i))
Next i
Range("AF4:AF1500").Value = TempArray
End Sub
- 2楼网友:蕴藏春秋
- 2021-04-15 09:44
可以这么理解。EXCEL内置函数本身就是代码,它是微软一代又一代的天才根据普遍应用的需要而写出来的一些计算工具。如果这些工具还不能满足自己的需要,可以利用VBA进行二次开发。
所以公式快还是VBA快,这个问题看怎么说:
第一,如果有可用的函数能够比较方便的解决问题,那就无须写VBA了,你不可能遇到一个问题写一个VBA。
第二,内置函数经过反复测试和完善,肯定是非常专业的,而自己写的VBA可能有漏洞、或者不是最简方案。而且VBA需要编程知识,普通应用者并不一定都能掌握。
第三,内置函数针对常规应用来的,不可能满足所有用户的所有需求。所以针对特殊应用,如果能写出很好的VBA,可能会提高效率,或者解决EXCEL不太容易解决的问题。
- 3楼网友:轮獄道
- 2021-04-15 08:46
主要是看什么公式
有的公式比vba快
一般情况下比公式快
就你10m大小基本全部是公式在工作表,用vba文件体积会大幅度缩小
vba代码相对公式来讲很少
因为公式基本上重复的,每系列单元格计算方法基本一样,但每个单元格都有一个公式,但vba只写一次,用循环就可全部计算完
vba是代码
可以完成公式无法做到的很多事情
如
公式只能在一个单元返回一个值
vba可以一次性算完所有东西
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯