[VBA问题] 求EXCEL引用单元格数值作为函数输入值的方法

[VBA问题] 求EXCEL引用单元格数值作为函数输入值的方法
如果一个函数如下
函数名(参数1,参数2,参数3.....参数N)
参数的值在sheet1里,都在同一行不同单元格中。
我现在只会
函数名(cells(1,1),cells(1,2),cells(1,3).......cells(1,n))
有没有简单一点的方法啊,问题补充:

1.N是固定个数,少的七八个,多的时候十几个
2.试过 函数名(Range(cells(1,1),cells(1,n)))的方法,会显示"参数不可选"
3.这个函数是通过外部API,来自别的软件的,还有每个参数的数据类型是不一样的是外带函数已经定义好的,比如某个函数是这么定义的:
New2DFrame(ByVal TempType As e2DFrameType, ByVal NumberStorys As Long, ByVal StoryHeight As Double, ByVal NumberBays As Long, ByVal BayWidth As Double, Optional ByVal Restraint As Boolean = True, Optional ByVal Beam As String = "Default", Optional ByVal Column As String = "Default", Optional ByVal Brace As String = "Default") As Long
在VBA编程时引用一般就是:
New2DFrame(PortalFrame, 3, 12, 3, 28)
这个参数算少的了,后面一些可选项也没输入,那种十几二十个的我一个个cells写过来真心郁闷啊
你可以这样,你可以生成“函数名(Range(cells(1,1),cells(1,n)))”这个句子,然后copy,把那个函数名覆盖不就OK了,不会连copy一次都懒得把,我只能帮你把工作量减少到copy一次,
sub bbb()
for i =1 to 20
if cells(1,i)=""then exit for
next i
for k=1 to i-1
cells(2,1)=cells(2,1)+"cells(1,"&k &"),"
next k
cells(2,1)="函数名("+left(cells(2,1),len(cells(2,1))-1)+")"
end sub

'这样在“A2”单元格里头就会生成“函数名(cells(1,1),cells(1,2),cell(1,3).......cells(1,n))”这个语句,你就 copy覆盖啦,只世举是我可能理解错你的意思,如果不可以通过复制来解决的话,那还真没办法,应为参液拿数个数 是不能变的。我没见过参搜埋碧数个数可以变的函数,假如参数个数变了,程序就认为这是两个不同的函数(即使函数名称一样!)。
自己再编写一个自定函数,用一个Range作罩弊为参数,把原来的自定义函数嵌物哗族入其中,采用新参数对原参数赋值。在使用时就用新编的自定义函数(引用新芦基参数Range参数)。不明白可再探讨
(cells(1,1),cells(1,2),cells(1,3).......cells(1,n))
只知道这个,
要不就是 (r1c1,r1c2,r1c3,r1c4......r1cn) 大同小异,手大
没棚薯凯想出来更好方法链唤。
=SUM(A1:A5)
这种写法呢?
要么改那个外部API,要么只能郁闷
← 上一篇: 下一篇: →