方法一:在公式的地方重新编辑。选中后按F2,然后回车。
方法二:写一个宏。例如:
sub 再计算()
applicationcalculate
end sub
注:可以在页面上放个按钮,然后将这个宏附在按钮上。
vba中formulaarray函数如何自定义步骤如下:
1、想自定义函数,需要进入VBA环境。打开Excel选项窗口,切换到自定义功能区选项卡,勾选开发工具选项。点击确定按钮。
2、在Excel程序主界面中,切换到开发者选项选项卡,点击点击VisualBasic按钮进入。
3、在VBA环境中,右击工作表,选择插入-模块项。
4、对应的自定义函数完成后,点击VBA界面中的Excel视图即可返回。
你这个要求不能实现啊,我用了paramarray
关键字,用来指定一个
任意元素个数
的数组
共参考:
---------
function
shuzu(paramarray
x())
applicationvolatile
dim
i,
n,
m,
tmp
n
=
ubound(x)
-
lbound(x)
+
1
if
n
mod
2
<>
0
then
tmp
=
"#err_x()":
goto
1000
n
=
n
/
2
m
=
lbound(x)
for
i
=
1
to
n
tmp
=
tmp
+
x(m
+
i
-
1)
x(m
+
i
-
1
+
n)
next
1000:
shuzu
=
tmp
end
function
-----------
输入公式的时候,需要
成对
的元素,套用你的公式如下:
=shuzu((k5,l5,m7,n9),(m13,l15,k13,m17))
可以输入任意
成对的
元素,比如使用10个参数:
=shuzu((k5,l5,m7,n9,m10),(m13,l15,k13,m17,n20))
Names("xzdm") ,Names("xzxx")指的是在工作表中,有两个以xzdm 和 xzxx 命名的单元格区域。
在2003中,插入——名称——定义。在“名称”可以找到对应的单元格。
在2007中,则是找到——公式——名称管理器。
快捷键组合都是(Ctrl+F3)
望采纳
'setunit不是后面一开始就设定为0吗?再加1也最多是1,也没有任何循环,什么时候会变成>4呢?
答:因为setunit是形参。是由用户传入的。所以是有可能超过4的。。
' (函数standard哪里确定了运算规则?count, setunit, time如何参与运算的呢?)
答:这一行只是一个简单的递归摆了
看起来没有问题,如果你另外一个SUB来调用它也会正常,例如:
SUB 测试
MSGBOX W_WW(1,2)
END SUB
结果是3
但是,如果你这个函数是作为工作表函数,那就不行了,工作表的函数不允许修改单元格。
在工作表中调用执行:A2=hanshu(A1)
'在代码中调用执行:
Sub diaoyong()
Dim d As Long
d = hanshu(10)
End Sub
Function hanshu(a As Variant) As Long
If Val(a) > 0 Then
hanshu = 1
Else
hanshu = 0
End If
End Function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)