Excel vba 函数调用的问题

Excel vba 函数调用的问题,第1张

如果直接执行 sub copy的话没有a,b参数当然会出错了

如果函数已经运行到Sheets("sheet2")Cells(a, b)的话最好再跟踪下a,b的值看看有没有问题,我这里简单的测试没有你说的1004错误

过程,就是执行一个或多个给定任务的集合。又分为两种类型:子程序与函数。其两者之间的主要区别在于,函数会返回一个值而子程序不会返回值。

1、子程序。子程序是一个程序中可执行的最小部份,其语法为:

[Private | Public | Friend] [Static] Sub name [(arglist)] 

[statements]

[Exit Sub]

[statements]

End Sub

Sub 语句的语法包含下面部分:

部分 描述

Public 可选的。表示所有模块的所有其它过程都可访问这个 Sub 过程。 如果在包含 Option Private 的模块中使用,则这个过程在该工程外是不可使用的。

Private 可选的。表示只有在包含其声明的模块中的其它过程可以访问该 Sub 过程。

Friend 可选的。只能在类模块中使用。表示该 Sub 过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。

Static 可选的。表示在调用之间保留 Sub 过程的局部变量的值。Static 属性对在 Sub 外声明的变量不会产生影响,即使过程中也使用了这些变量。

name 必需的。Sub 的名称;遵循标准的变量命名约定。 

arglist 可选的。代表在调用时要传递给 Sub 过程的参数的变量列表。多个变量则用逗号隔开。

statements 可选的。Sub 过程中所执行的任何语句组。

其中的 arglist 参数的语法以及语法各个部分如下:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]

部分 描述

Optional 可选的。表示参数不是必需的关键字。如果使用了该选项,则 arglist 中的后续参数都必须是可选的,而且必须都使用 Optional 关键字声明。如果使用了 ParamArray,则任何参数都不能使用 Optional。

ByVal 可选的。表示该参数按值传递。

ByRef 可选的。表示该参数按地址传递。ByRef 是 Visual Basic 的缺省选项。

ParamArray 可选的。只用于 arglist 的最后一个参数,指明最后这个参数是一个 Variant 元素的 Optional 数组。使用 ParamArray 关键字可以提供任意数目的参数。ParamArray 关键字不能与 ByVal,ByRef,或 Optional 一起使用。

varname 必需的。代表参数的变量的名称;遵循标准的变量命名约定。

type 可选的。传递给该过程的参数的数据类型,可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)、Object 或 Variant。如果没有选择参数 Optional,则可以指定用户定义类型,或对象类型。

defaultvalue 可选的。任何常数或常数表达式。只对 Optional 参数合法。如果类型为 Object,则显式的缺省值只能是 Nothing。

2、函数:函数与子程序最大的区别就在于其可以返回值,而其它地方与子程序相似,语法如下:

[Public | Private | Friend] [Static] Function name [(arglist)] [As type]

[statements]

[name = expression]

[Exit Function] 

[statements]

[name = expression]

End Function

可以看出除了声明的关键词外,其它基本类同,说明与用法也相近,这里就不再重复了。

以上就是关于Excel vba 函数调用的问题全部的内容,包括:Excel vba 函数调用的问题、简叙vba过程、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9684622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存