www.5213.net > ExCEl vBA中自定义一个函数,该函数需要用到函数所在的那个单元格的列号,如函数写在B5单元格

ExCEl vBA中自定义一个函数,该函数需要用到函数所在的那个单元格的列号,如函数写在B5单元格

Function myAddr()myAddr = ActiveWorkbook.Application.ThisCell.AddressEnd Function将返回运行自定义函数的单元格的地址所以可以用Dim rC As RangeSet rC = ActiveWorkbook.Application.ThisCell这样rC的行/列号就可以使用了,注意这样的自定义函数是可以随意拖动的.楼主当然明白,由于是属于VBA的自定义函数,需要触发才能更新,按F9或,在Excel设定为自动重算的前提下有单元格的数据发生变化而触发重算时或,在Excel设定为保存时重算并且操作者执行了保存是,才会更新自定义函数的数据.

'自定义函数function num(cl as range) if cl.count>1 then num="请重新选择单个单元格!" exit function end if dim dic as object set dic=createobject("scripting.dictionary") for i=1 to len(cl) if dic.exists(mid(cl,i,1))=false then dic(mid(cl,i,1))="" next num= (join(dic.keys,"")) * 1end function

在A1中输入=colors(50,50,50) 回车,背景变成灰色这是做不到的.原因如下:A1输入函数colors,函数只能返回值给A1,而不能返回一个操作给A1

这个好像不需要自定义函数吧,EXCEL自带的函数就有这个功能.C15中输入 =OFFSET(A14,-D1,0)就可以了,第一个参数为参考单元格,第二个参数-D1表示以参考单元格为基准上移多少行,第三个参数0表示与参考单元格在同一列.

如图:C4=IF(B4"",$F$1,"")我把它往下拖动几格,下方的格也有了函数,如C5=IF(B5"",$F$1,"")等但我想让C4下的所有单元格都有相应的函数,手工拖动就不实际了,所以想在VBA中加入这个功能.除了C列需要这样外,D列也要,如D4下所有单元格也加入“选中D4往下拖的功能”补充一下,我是想直接用VBA来实现这个功能,用到单元格的时候执行相应的函数就行了,不用往单元格里插入函数,这样也可大大减小文件体积.

你的自定义函数易失性函数,不会自动更新,你只要在使用函数的公式后面加上强制更新的东西就行了比如你的公式的结果是文本型的,那么=pbs()&t(now())比如你的公式的结果是数值型的,那么=pbs()+n(t(now()))就能强制自动更新至于rng1和rng2,楼主试试用range的方式,也就是set rng1=range(xxxxxx)

给你个列子 在 C列找 包含 “宁波” 的单元格 ,如果 是完全匹配 XLPART 改成XLWHOLE Sub 查找() Set findcell = Columns("c").Find("宁波", LookAt:=xlPart) If Not findcell Is Nothing Then MsgBox findcell.Row Else MsgBox "没找到符合条件的单元格" End If End Sub

Public Function SelectFrom8(All As Range, i As Integer, j As Integer) SelectFrom8 = All.Cells(i, j).Value End Function两个问题:1. 函数的返回值不要指定As Range2. 用All.Cells(i,j).Value来返回指定单元格的值

看不懂你说的意思,最好通过截图.譬如我想实现点击当前激活工作表的A1单元格,让工作表sheet1中的B列全部内容复制到sheet2种的B列中第一个非空单元格.然后附上点击A1前的效果图,和点击A1后的效果图,你说的东西好模糊.不知是否是我的理解有问题.还有,最好上传你的文档,可以让答题者写好代码直接传给你.

把Function替换成Sub看看.或者不用括号:fillColor 3,3,1 ,再或者用:Call fillColor(3,3,1)

相关搜索:

网站地图

All rights reserved Powered by www.5213.net

copyright ©right 2010-2021。
www.5213.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com