如何在sub中excel 调用sub我自己编写的函数

查看: 1768|回复: 10
【求助】vba如何在Function中调用Sub
阅读权限10
在线时间 小时
我分别写了一个Sub和Function,在Function中调用Sub总是错误#VALUE!,请大神指点怎么写才对
Sub BB(x, y)
Cells(x, y) = 1
Function AA(a)
& & Dim m%, n%
& & m= ActiveCell.Row
& & n= ActiveCell.Column
& & Call BB(m+ 1, n)
End Function
请大神指点下怎么才能在Function内调用可赋值的Sub,谢谢!!
阅读权限200
在线时间 小时
系统规定,在Function内不能给单元格赋值,包括调用Sub。
但还是有人走后门避开了这个规定。
我觉得还是循规蹈矩好,规定自有规定的道理。开车不喝酒,喝酒不开车。
阅读权限10
在线时间 小时
系统规定,在Function内不能给单元格赋值,包括调用Sub。
但还是有人走后门避开了这个规定。
我觉得还是 ...
那悲剧了,看来只能想别的办法
阅读权限200
在线时间 小时
不是悲剧,可能原来的思路就存在不合理的地方。
客家俗语云:东门唔开,西门逼坼。普通话的意思大概是上帝关闭一扇门的同时也为你打开一扇窗,或者说天无绝人之路。
办法总会有的。
阅读权限90
在线时间 小时
把SUB 内容整合入 FUNCTION.
阅读权限70
在线时间 小时
系统规定,在Function内不能给单元格赋值,包括调用Sub。
但还是有人走后门避开了这个规定。
我觉得还是 ...
版主的解释不太合适。
应该是:在工作表中调用的自定义函数以及该自定义函数中调用的其他过程或者函数中都不能包含对excel和工作簿进行操作的代码。
而如果不是在工作表中调用的话是可以的。也就是说楼主的代码如果是直接通过代码来调用AA过程执行是没问题的。
阅读权限200
在线时间 小时
版主的解释不太合适。
应该是:在工作表中调用的自定义函数以及该自定义函数中调用的其他过程或者函数中 ...
谢谢更正。
阅读权限10
在线时间 小时
把SUB 内容整合入 FUNCTION.
我是必然会单元格赋值的,所以我整合过好像也不行
阅读权限10
在线时间 小时
& & & & & & & &
版主的解释不太合适。
应该是:在工作表中调用的自定义函数以及该自定义函数中调用的其他过程或者函数中 ...
了解了,谢谢谢谢!!
阅读权限20
在线时间 小时
回调函数传递参数你总得找指针,VBA这个寄生虫你怎么去找指针嘛,不好搞哟。
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师子程序sub和函数function用法【易键深度-出品】 _ 脚本制作教程 - 按键精灵论坛
腾讯微博:
软件版本:2014.05软件大小:76.8M更新时间:2-21
软件版本:3.2.2软件大小:62.5M更新时间:04-24
软件版本:1.2.5软件大小:29.2M更新时间:04-18
软件版本:1.1.0软件大小:12.3M更新时间:12-29
双蛋勋章(30天)双蛋活动勋章(30天)按键精灵开发者4级可通过提升认证等级来升级勋章:
按键精灵开发者4级可通过提升认证等级来升级勋章:十周年勋章(360天)十周年纪念勋章学有所成学有所成勋章,新手步入按键学堂的第一枚勋章
ufooqtoboh
黄瓜勋章(永久)体验商业小精灵活动的奖励鹰眼勋章鹰眼注册用户专属勋章认证考霸(90天)参加考霸活动,对认证考了十次以上用户的鼓励按键精灵开发者4级可通过提升认证等级来升级勋章:学有所成学有所成勋章,新手步入按键学堂的第一枚勋章马年勋章(360天) 马年纪念勋章(360天)龙年勋章(360天)龙年纪念勋章(360天)双蛋勋章(30天)双蛋活动勋章(30天)
学习收藏。。。。。
这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑这是一个坑
这个一定要看看
按键会员(月)按键会员绑定账号后自动赠送
hailong2012
学有所成学有所成勋章,新手步入按键学堂的第一枚勋章小红帽对论坛提出良好建议(可向管理员申请)骨灰级按键用户3年以上的按键论坛用户黄金之翼黄金之翼勋章按键图书勋章尊贵的按键图书用户黄瓜勋章(永久)体验商业小精灵活动的奖励微信达人(90天)微信签到活动(90天)鹰眼勋章鹰眼注册用户专属勋章认证考霸(90天)参加考霸活动,对认证考了十次以上用户的鼓励马年勋章(360天) 马年纪念勋章(360天)微博达人(90天)完成新浪微博加V的奖励,结合活动不定期开放申请。按键精灵开发者6级(新浪V认证)通过新浪微博加V后自动发放,并替换普通的认证6级勋章。 脚本作者商业小精灵作者绑定账号后自动赠送月全勤论坛自然月(如8.1-8.31)签到满勤,系统会在月底自动判断发放。
学习了,谢谢!
如果我的回复对你有帮助,记得给鲜花!
新人来学习
学习下。,。。。。
学习一下……
参考对比对比
kuangshenmc1
按键精灵开发者3级可通过提升认证等级来升级勋章:
按键精灵开发者2级可通过提升认证等级来升级勋章:
这个得看看哦!
kool278505
学习中……
按键精灵开发者3级可通过提升认证等级来升级勋章:
按键精灵开发者2级可通过提升认证等级来升级勋章:
学习学习学习学习学习
按键精灵开发者3级可通过提升认证等级来升级勋章:
学有所成学有所成勋章,新手步入按键学堂的第一枚勋章按键精灵开发者4级可通过提升认证等级来升级勋章:情人节勋章(30天)天下有情人终成眷属黄瓜勋章(永久)体验商业小精灵活动的奖励幸运草勋章(永久)商业小精灵限时活动勋章。
&iframe frameborder=&no& border=&0& marginwidth=&0& marginheight=&0& width=298 height=52 src=&///outchain/player?type=3&id=&auto=1&height=32&&&/iframe&
按键会员(月)按键会员绑定账号后自动赠送你还记得吗-VB中Sub子过程与函数的调用
你还记得吗-VB中Sub子过程与函数的调用
发布时间: 12:25:04
编辑:www.fx114.net
本篇文章主要介绍了"你还记得吗-VB中Sub子过程与函数的调用",主要涉及到你还记得吗-VB中Sub子过程与函数的调用方面的内容,对于你还记得吗-VB中Sub子过程与函数的调用感兴趣的同学可以参考一下。
& & 在做学生管理系统中,遇到了太多太多的问题,发现了VB的学习是多么的不牢固,即使当初耗费了大量的时间。从现在开始,将把自己遇到的那些模糊或者不懂的知识总结出来,查漏补缺,欢迎大家提出批评指正!
& & VB中的调用主要针对Sub子过程和自定义函数的调用。不论是Sub子过程还是函数过程,都是将一段完整的功能独立出来,建立一个过程。在主调程序中通过调用过程,将需要计算的参数(实参)传递给过程;在过程中求得结果后再讲结果返回到主调程序,从而实现程序的功能,并使程序结构更为清晰、简洁。
& & 一、Sub子过程的调用
& & 在程序中要调用Sub子过程的方法有如下两种:
& & Call 过程名 (实参列表) &或 & 过程名 &[实参列表]&
& & 调用Sub子程序的程序段称为主调程序。在主调程序中调用Sub子过程时,将使程序流程自动转向被调用的Sub子过程。在过程执行完最后一行语句 End Sub 之后,程序流程将自动返回到主调程序语句的下一行继续进行,如下图所示:
& & & & & & & & & &
& & 在调用过程的的语句中,不仅要求实参个数与被调用过程形参个数一致,而且要求实参表的参数类型、参数顺序与被调用过程形参表的参数完全一致。
& & 二、自定义函数的调用形式如下:
& & & & & &函数名 &(实参列表)
& & & & 实参列表有变量名、数组名、数组元素名、常熟或表达式组成,在调用时,实参和形参的数据类型、顺序、个数必须一一对应。如下图所示:
& & & & & & & &&
& & 函数调用只能出现在表达式中,其功能是求得到函数的返回值。
& & 从上面两张图中可以看出,Sub子过程和函数过程在传递需要计算的参数时(实参a、b传递给形参x、y),两者并没有什么不同。但在返回结果方面,因为函数过程可以通过函数名返回结果,因此,在函数过程中一般只需要设置接收计算参数的形参即可(图2的形参为x、y);Sub子过程却有所不同,由于Sub子过程名只代表名字,没有返回值,所以必须另外设置专门的形参用于返回结果(图1的形参为z1、z2)。
& & 那么,在解决一个问题时,是使用Sub子过程还是使用函数过程呢?从原则上来说,解决一个问题,既可以使用Sub子过程,也可以使用函数过程。如果是需要过程只有一个返回值,一般习惯使用函数过程,通过函数名来返回结果;如果不是为了求一个值,而是完成一些操作,或者需要返回多个值,则使用Sub子过程比较方便,此时,可以通过设置与返回值个数相符的形参个数来得到返回结果。
& & 补充:多窗体间数据的访问与传递
& & & & & & & & ①直接访问其他窗体的控件属性
& & & & & & & & & & 在一个窗体中可以直接访问另一个窗体上控件的属性,访问时要指明是哪一个窗体,形式为:
& & & & & & & & & & & & & & & & & & & & & & & & &另一窗体名.控制名.属性 & 如Text1.Text=Form1.Text1.Text
& & & & & & & & ②直接访问其他窗体中声明的全局变量
& & & & & & & & & & 在窗体的通用声明区用Public关键字声明的变量,可以被工程中其他的窗体或模块所使用.需要注意的是,在使用窗体的全局变量时,必须带有窗体名。 & & & & 格式为: & & & & 窗体名.变量名
& & & & & & & & ③在标准模块中声明全局变量,实现数据的共享
& & & & & & & & & & 为了实现窗体间的数据互访,还可以在标准模块中声明全局变量,并以该全局变量作为交换数据的场所。 例如:在标准模块中声明:Public Pubx As Integer &,此时在一个窗体中对Pubx的赋值可以被另外窗体使用。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:16141人阅读
vb学习(8)
& & 在做学生管理系统中,遇到了太多太多的问题,发现了VB的学习是多么的不牢固,即使当初耗费了大量的时间。从现在开始,将把自己遇到的那些模糊或者不懂的知识总结出来,查漏补缺,欢迎大家提出批评指正!
& & VB中的调用主要针对Sub子过程和自定义函数的调用。不论是Sub子过程还是函数过程,都是将一段完整的功能独立出来,建立一个过程。在主调程序中通过调用过程,将需要计算的参数(实参)传递给过程;在过程中求得结果后再讲结果返回到主调程序,从而实现程序的功能,并使程序结构更为清晰、简洁。
& & 一、Sub子过程的调用
& & 在程序中要调用Sub子过程的方法有如下两种:
& & Call 过程名 (实参列表) &或 & 过程名 &[实参列表]&
& & 调用Sub子程序的程序段称为主调程序。在主调程序中调用Sub子过程时,将使程序流程自动转向被调用的Sub子过程。在过程执行完最后一行语句 End Sub 之后,程序流程将自动返回到主调程序语句的下一行继续进行,如下图所示:
& & & & & & & & & &
& & 在调用过程的的语句中,不仅要求实参个数与被调用过程形参个数一致,而且要求实参表的参数类型、参数顺序与被调用过程形参表的参数完全一致。
& & 二、自定义函数的调用形式如下:
& & & & & &函数名 &(实参列表)
& & & & 实参列表有变量名、数组名、数组元素名、常熟或表达式组成,在调用时,实参和形参的数据类型、顺序、个数必须一一对应。如下图所示:
& & & & & & & &&
& & 函数调用只能出现在表达式中,其功能是求得到函数的返回值。
& & 从上面两张图中可以看出,Sub子过程和函数过程在传递需要计算的参数时(实参a、b传递给形参x、y),两者并没有什么不同。但在返回结果方面,因为函数过程可以通过函数名返回结果,因此,在函数过程中一般只需要设置接收计算参数的形参即可(图2的形参为x、y);Sub子过程却有所不同,由于Sub子过程名只代表名字,没有返回值,所以必须另外设置专门的形参用于返回结果(图1的形参为z1、z2)。
& & 那么,在解决一个问题时,是使用Sub子过程还是使用函数过程呢?从原则上来说,解决一个问题,既可以使用Sub子过程,也可以使用函数过程。如果是需要过程只有一个返回值,一般习惯使用函数过程,通过函数名来返回结果;如果不是为了求一个值,而是完成一些操作,或者需要返回多个值,则使用Sub子过程比较方便,此时,可以通过设置与返回值个数相符的形参个数来得到返回结果。
& & 补充:多窗体间数据的访问与传递
& & & & & & & & ①直接访问其他窗体的控件属性
& & & & & & & & & & 在一个窗体中可以直接访问另一个窗体上控件的属性,访问时要指明是哪一个窗体,形式为:
& & & & & & & & & & & & & & & & & & & & & & & & &另一窗体名.控制名.属性 & 如Text1.Text=Form1.Text1.Text
& & & & & & & & ②直接访问其他窗体中声明的全局变量
& & & & & & & & & & 在窗体的通用声明区用Public关键字声明的变量,可以被工程中其他的窗体或模块所使用.需要注意的是,在使用窗体的全局变量时,必须带有窗体名。 & & & & 格式为: & & & & 窗体名.变量名
& & & & & & & & ③在标准模块中声明全局变量,实现数据的共享
& & & & & & & & & & 为了实现窗体间的数据互访,还可以在标准模块中声明全局变量,并以该全局变量作为交换数据的场所。 例如:在标准模块中声明:Public Pubx As Integer &,此时在一个窗体中对Pubx的赋值可以被另外窗体使用。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:407224次
积分:9057
积分:9057
排名:第1753名
原创:88篇
评论:1749条}

我要回帖

更多关于 matlab编写函数并调用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信