如何在VBA自定义函数中引用单元格

最简单的比如我想模仿Index函数的功能,在选定的区域找到某行某列的元素,该如何写自定义函数??PublicFunctionSelectFrom8(AllAsRange,... 最简单的比如我想模仿Index函数的功能,在选定的区域找到某行某列的元素,该如何写自定义函数??
Public Function SelectFrom8(All As Range,i as Integer, j as Integer) As Range
SelectFrom8 = All.Parent(i,j)
End Function
是这个意思,但是如果我写SelectFrom8(A1:B10,1,1)直接报VALUE错误,具体应该怎么实现??
求教了~~
那个Parent是我打.出来的,如果去了也是一样的错误~
展开
 我来答
swordwindpla
推荐于2016-06-02 · TA获得超过339个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:85.7万
展开全部
Public Function SelectFrom8(All As Range, i As Integer, j As Integer)
  SelectFrom8 = All.Cells(i, j).Value
End Function

两个问题:

  1. 函数的返回值不要指定As Range

  2. 用All.Cells(i,j).Value来返回指定单元格的值

K_BEAT
2013-12-04 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:402万
展开全部

随手写了一个,试下行不?

Public Function GetCellRef(ByVal Target As Range, _
                           ByVal Row As Long, _
                           ByVal Column As Integer) As Range
    On Error Resume Next
    
    If Not (Target Is Nothing) Then
        If (Row > 0) And (Column > 0) Then
            Set GetCellRef = Target.Cells(Row, Column)
        End If
    End If
End Function


调用:

Set rngTemp = GetCellRef(ActiveSheet.UsedRange, 1, 1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
双枪老椰子
推荐于2018-05-10 · TA获得超过5.5万个赞
知道大有可为答主
回答量:5797
采纳率:93%
帮助的人:1826万
展开全部
  如何编写自定义函数
  ①新插入一个标准模块;
  ②插入一个空的Function过程;
  ③写入相应的代码。
  注意:最后一定要将结果返回给过程名。
  扩展:什么是自定义函数
  自定义函数就是用户自己编写的函数。在VBA中,自定义函数就是一个Function过程。在vba 系统中,系统也提供了相当多的vba 系统函数,如instr,cstr,val 等系统函数。
  
  语法结构,同Sub类似。
  [Public]、[Private]、[Static] Function 函数名([参数])[As数据类型]
  [语句块]
  [函数名=过程结果]
  [Exit Function]
  语句块
  [函数名=过程结果]
  End Function
  公有与私有自定义函数的区别:同sub相似,私有的只能在当前模块中过程中调用,而且在插入函数中不可见此函数名。
  
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式