问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Excel自定义函数参数处理问题。

发布网友 发布时间:2022-04-22 00:58

我来回答

3个回答

热心网友 时间:2023-07-05 17:05

VBA之自定义函数
这一贴说的是自定义函数。Excel本身已自带了很多函数,供我们使用,但有些问题用原有的函数解决起来很复杂,甚至是*为力,但有了VBA,可能就可以现实。
怎样自定义一个函数?下面我们建一个名为RangeCount和函数,用来统计给定单元格数量。上贴说过怎么插入一个宏(子程序),其实细心的朋友就会发现,里面有一项函数的选项,就是用这个添加了!键入你需要的名称RangeCount,即会自动生成一个函数的头Public
Function
RangeCount()和尾End
Function!这时大家可以知道,子程序都是以Sub关键字开头,而函数是以Function关键字开头。
怎样给自定义函数传递参数?用过Sum函数的朋友都知道Sum的用法,在单元格中键入=Sum(A1:A10)就能对A1:A10进行求和,那么怎么让我们的自定义函数也有此功能呢,其实很简单,只要在Function
RangeCount()中的(与)之间加入即可,象现在我们要给这个自定义函数传递一个单元格的参数,即在()间加入XRan
As
Range即可。其中XRan就是我们给这个参数设定的名称,As
是关键字,而Range就是给定参当数的类型(单元格类型),更详细的说明可以参见VBA的帮助(上贴有说明怎么用帮助了吧:))。
怎么样自定义函数加入功能?其实也和子程序一样,在函数的头Public
Function
RangeCount()和尾End
Function之间就可以加入代码,我们这个函数的代码只有一句:RangeCount
=
XRan.Count
怎么样让自定义函数返回值?从上面的例子看出,只要将函数的名称设定为需要返回的值即可。
怎么当前工作表中使用自定久函数?使用自定义函数的方法其实和一般函数的方法是一样的,在单元格中键入=RangeCount(A1:A10),即可以得到值(10)!当然,也可以通过菜单插入/函数,在类别中选择用户自定义里找到你自定义的函数。
怎么在工作表里使用别的工作表里的自定义函数?从菜单插入/函数,类别中的用户自定义里,可以看到,如果这个自定义函数不是在当前的工作表里的,函数会变成——文件名.xls!函数名了,这样我们使用上面的自定义函数就变成=Book1.xls!RangeCount(A1:A10)(设我们刚才保存文件为Book1)。
怎么样在任何工作表中使用自定义函数?自定义了函数后,每一次使用都要打开这个工作簿,不方便,那么怎么样让任何工作簿都能使用这个自定义函数呢?有两个方法,第一个就是把代码写在上面说到的个人宏工作簿中,因为个人宏工作簿都是随Excel自动打开的,那么我们就可以通过PERSONAL.XLS!函数名来使用这个自定义函数。第二个方法就是加载宏(关于加载宏的其它用法和具体说明以后还会有专门的一贴),将包含这个自定义函数的工作簿,去掉无关的内容(不去当然也行啦!)后另存为加载宏(不会不知道怎么另存吧,汗!后注!),这样在菜单工具/加载宏里,将相关项前打勾,即可使用该自定义函数,这时使用函数的方法只要直接用函数名即可,如=RangeCount(A1:A10)。
最后再说一点大家少遇到的现象:用过VBA后,大家知道在同一模块中是不能有相同名称的子程序与函数的,如果有,运行时会提示存在二义性!但在不同模块中,却能有相同甸称的函数存在,那么怎么使用这样的函数呢?从菜单插入/函数,类别中的用户自定义里,我们可以看出这样的函数变成模块名.函数名了,这样我们的使用方法就是=模块1.RangeCount(A1:A10)或=模块2.RangeCount(A1:A10)。
后注:详细的另存为加载宏的过程,点击菜单/文件/另存为,在文件类型里选择Microsoft
Excel加载宏项,这时文件夹自动转到保存加载宏的AddIns,再保存即可。

热心网友 时间:2023-07-05 17:06

你这个函数是可以使用的,可能是你不会使用这个自定义函数,正确使用是:
必须先运行microsoft
visual
basic(这在“开发工具”菜单中可以找到”)
点击“插入”,“模块”,进入新建立的“模块1”内,键入该段程序。
再转入excel中,在单元格内键入如“test(2)”,回车后你便得到该单元个显示02;
或写入“test("gggt"),会得到0ggt,因为你定义了test函数内的变量为字符型变量,该变量不能为空,如果可以缺省,可以改为:
function
test(optional
str
as
string="lo")

热心网友 时间:2023-07-05 17:06

希望下面的程序对你有用!
Range("A5:H19").Select
Dim
a
a
=
Selection.Rows
Dim
StartRow
As
Long
Dim
StartColumn
As
Long
Dim
EndRow
As
Long
Dim
EndColumn
As
Long
StartRow
=
Selection.Row
StartColumn
=
Selection.Column
EndRow
=
StartRow
+
UBound(a,
1)
-
1
EndColumn
=
StartColumn
+
UBound(a,
2)
-
1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 excel中if函数多条件如何设定参数 excel函数参数是什么 Excel中,用函数自动生成了数据,如何将表格中的数... Excel里面的函数参数怎么设置 excel自动套用公式怎么固定一个参数? 在使用excel表格时,如何设定固定参数? 在电脑wps上怎么删除空白页 我的电脑 wps我的电脑wps云文档怎么删除 电脑wps如何删除空白页 电脑上如何删除wps系统 如何卸掉电脑上的WPS文字 wps如何删除我的wps 怎么在笔记本里卸载wps 电脑怎么卸载wps 怎么删除wps 手机进水,其它一切正常就是不能拍照了相机黑屏 手机进水,相机不能用,怎么办 手机进水了,开始显示在那个相机里面,后来闪了一... 华为手机进水了,开机后,可以使用,相机和手电筒... 怎么样区分充电电池还是不可充电电池 excel里的这个函数REPLACE 怎么用?具体参数怎么设... excel中如何根据计算对象的规范性决定函数参数的个数 EXCEL表中如何一个函数设置多个参数 如何让Excel中函数的参数说明变成中文? 为什么excel中函数参数设置是教学重点,如何阐述? 苏州拉手网团购好吗?我也想找他们谈谈,能不能帮... 苏州市拉手针纺有限公司怎么样? 苏州拉手网今日团购好用吗? 想问一下拉手网苏州站的办公地点在哪里? 苏州拉手网合作联系方式 苏州拉手网 上1元团购了红管KTV的券,是真的吗?2... 苏州市手拉手婚介服务有限公司怎么样? 苏州手拉手安装工程有限公司怎么样? 苏州手拉手物业管理有限公司怎么样? 苏州哪有玻璃门拉手卖 苏州团购 美团网和拉手网哪个网好一点 苏州哪里有卖冷冻系列、拉手和铰链五金配件的???? 苏州3名初三学生手拉手闯红灯是怎么回事? 拉手网团购好不好啊?他们的人气旺吗?我是苏州的... 有在拉手网苏州站上班的朋友么?