EXCEL函数数组公式转VBA代码

如题所述

第1个回答  2019-08-20
公式一般比vba快,因为vba是解释执行的。
你公式慢的因为是有些写法不合适,建议:
1.增加辅助列,第一列写c1=d1,,,C:C=C1,,,实际上应该怎么写,你调整下
2.不要整列的用数组公式,你这个C:C=C1,有效数有多长就写多长,适当多一点没关系,
但整列,当然就慢的厉害了,改为C1:C1000=C1会极大的改改善公式速度。
C:C=C1在数组公式中,大约是从C1...C65536单元格,逐一跟C:C比较,在2003下是65536*65536次运算,在07下去运算一次,1048576*1048576次计算比较,10分钟才算完,不慢了,呵呵
完善下公式就OK,不用写什么VBA
第2个回答  2019-07-08
这里本来就是vba代码呀?你要转成excel函数??
if(if(d1)*pi/180>=0,if(cos(b1)*pi/180-i1*pi/180)<0,true,false),if(cos(b1)*pi/180-i1*pi/180)>0,true,false)),"-1","1")
这里面有变量,反正就是把cell()这一块换成单元格地址就行了;
好像是经纬度转换,对不?