|
本帖最后由 row32hahaha 于 2013-10-12 17:00 编辑
1、自定义函数的 Range参数如何才能跨工作表引用?
比如我的自定义函数既要用到Sheet1又要用到Sheet2的引用,我写的模块用的Range参数好像不行,在同个Sheet里就可以起作用
2、另外如果是Range如何自动去除空值的单元格呢?
比如我自定义参数传递的是Sheet2!A2:A65535 这时候结果就报错了,如果刚好是可用值的范围就可以。
自定义函数是在论坛上找的一个符合对比合并字符串到同一单元格的功能。代码如下:
Public Function ConnectString(rg As Range, ag As Range, x As Range, y As String) '定义rg为查找区域,ag为对比区域,x为查找值,y为连接各个数之间的符号
Dim i As Integer, arr() '定义i,arr()
ReDim Preserve arr(rg.Cells.Count) '储存循环返回的每个arr()结果
For i = 1 To rg.Cells.Count '在rg范围内循环
If Cells(i + rg.Row - 1, rg.Column) = x Then '如果查找区域等于查找值,则返回对比区域
arr(i) = Cells(i + rg.Row - 1, ag.Column)
End If
Next i
ConnectString = Replace(Application.Trim(Replace(Join(arr(), ","), ",", " ")), " ", y) '用","把生成的数组连接起来在把多余的","去掉
End Function
|
|