1. vba怎么调用函数
在vba里调用excel表中的公式函数,其调用形式是在函数的前面添加WorksheetFunction,例如:Sub test() Sheets("温度").Cells(1, 1) = WorksheetFunction.VLookup(1.09, Sheets("重命名").Range("A1:C10"), 3, 0)End Sub
2. vba调用函数有时候不执行
函数和VBA的定位是不同。
函数是面向使用者而VBA是面向开发者。函数只需要了解参数的格式、函数功能就可以使用,而VBA需要有开发能力,懂VBA的语法格式,懂excel的底层封装的函数和功能,才能灵活应用。
3. vba调用函数参数传递
在外部调用Test宏,具体参考如下:Public Sub Test(ByRef City As String) MsgBox (City) City = "上海" MsgBox (City)End SubSub bb() Dim xx xx = "北京" Test (xx) MsgBox (xx)End Sub
4. vba怎么调用函数的值
在VBA指令中调用Excel函数,可以在函数前面加WorkSheetFunction来调用,如: WorkSheetFunction.Max(Range("A1:A10"))——取单元A1:A10里的最大值; WorkSheetFunction.Average(Range("A1:A10"))——取单元A1:A10里的平均值。 Sub ttt() Cells(1, 2) = WorksheetFunction.Max(Range("A1:A10")) Cells(2, 2) = WorksheetFunction.Average(Range("A1:A10")) End Sub
5. vba调用函数时 类型不匹配
Format(值,格式(可选参数)) 一、数字格式:
1、GeneralNumber:普通数字,可以用来去掉千位分隔号和无效 0 。 如:Format("1,234,567.80","General Number")="1234567.8" 2、Currency:货币类型,可添加千位分隔号和货币符号,保留两位小数点。
如:Format(1234567,"Currency")="¥1,234,567.00" 3、Fixed:格式为带两位小数的数字。 如:Format("123456","Fixed")=123456.00 4、Standard:标准,即带千位分隔号和两位小数。
如:Format("123456","Standard")=123,456.00 5、Percent:带两位小数点的百分数。 如:Format("123456","Percent")=12345600.00 6、Scientific:科学记数法。 如:Format("1234567","Scientific")=1.23E+06 7、Yes/No:当数值为非 0 数字时返回 Yes ,否则返回 No 。
如:Format(-3.14,Yes/No")="Yes" Format(0,"Yes/No")="No" 8、True/False:当数值为非 0 数字时返回 True ,否则返回 False 。 与第7点类似,这里不再举例。
9、On/Off:当数值为非 0 数字时返回 On ,否则返回 Off 。 与第7点类似,这里不再举例。
10、""或省略:返回原值,但去除了小数点前后的无效 0 。 如:Format("0.1030","")=".103" 11、0:占位格式化,不足位时补足 0 。 如:Format(123,0000")="0123" Format$(12.3,"0.00")="12.30" 12、#:占位格式化,不足位时不补足 0 。 如:Format(123,"####")=123 13、%:转化为百分数,一个%代表乘以 100 。 如:Format(1.23,"0.00%")=123.00% Format(1.23,"0.00%%")=12300.00%
% 14、:强制显示某字符。
如:Format$(12.34, "RMB.00")="RMB 12.34" 15、;(分号):分段显示不同格式 比如要把正数显示为“正”,负数显示为“负”,0显示为“零”,参数为"正;负;零" 如:Format$(123, "正;负;零")="正" 第1段为正数格式,第2段为负数格式,第3段为0格式。 二、日期和时间格式:
1、固定格式参数 General Date:基本类型 如:Format("2010-5-19:8:5", "General Date")="2010/5/1 9:08:05" Long Date:操作系统定义的长日期 如:Format("2010-5-19:8:5", "Long Date")=2010年5月1日 Medium Date:中日期 如:Format("2010-5-19:8:5", "Medium Date")=10-05-01 Short Date:操作系统定义的短日期 如:Format("2010-5-19:8:5", "Short Date")=2010-5-1 Long Time:操作系统定义的长时间 如:Format("2010-5-19:8:5", "Long Time")=9:08:05 Medium Time:带AM/PM(上午/下午)的12小时制,不带秒 如:Format("2010-5-19:8:5", "Medium Time")=09:08 上午 Short Time:24时制的时间,不带秒 如:Format("2010-5-19:8:5", "Short Time")=09:08 2、自定义格式 C:格式化为国标的日期和时间 如:Format("2010-5-19:8:5", "c")=2010/5/1 9:08:05 y:一年中的第几天(1-366) 如:Format("2010-5-19:8:5", "y")=121 yy:两位数的年份(00-99) 如:Format("2010-5-19:8:5", "yy")=10 yyy:上面的 yy 与 y 结合在一起 如:Format(2010-5-1 9:8:5","yyy")=10121 Format("2010-5-19:8:5", "yy年第y天")=10年第121天 yyyy:四位数的年份(0100-9999) 如:Format("2010-5-19:8:5", "yyyy")=2010 d:一个月中的第几天(1-31) 如:Format("2010-5-19:8:5", "d")=1 dd:与 d 相同,但不足两位时补足 0 如:Format("2010-5-19:8:5", "dd")=01 ddd:三个英文字母表示的星期几 如:Format("2010-5-19:8:5", "ddd")="Sat" dddd:英文表示的星期几 如:Format("2010-5-19:8:5", "dddd")="Saturday" ddddd:显示标准日期 如:Format("2010-5-19:8:5", "ddddd")=2010/5/1 dddddd:长日期 如:Format("2010-5-19:8:5", "dddddd")=2010年5月1日 w:一个星期中的第几天(始于周日,周日为1) 如:Format("2010-5-19:8:5", "w")=7 ww:一年中的第几周 如:Format("2010-5-19:8:5", "ww")=18 m:月份数(当用于时间时,也可以表时为分钟) 如:Format("2010-5-19:8:5", "m")=5 mm:当小于10时带前导0的月数(当用于时间时,也可以表示为两位数的分钟数) 如:Format("2010-5-1 9:8:5","mm")=05 mmm:三个英文字母表示的月份数 如:Format("2010-1-19:8:5", "mmm")="Jan" mmmm:英文表示的月份数 如:Format("2010-1-19:8:5", "mmmm")="January" q:一年中的第几季(1-4) 如:Format("2010-5-19:8:5", "q")=2 aaa:中文表示的周几 如:Format("2010-5-19:8:5", "aaa")=周六 aaaa:中文表示的星期几 如:Format("2010-5-19:8:5", "aaaa")=星期六 h:小时数(0-23) 如:Format("2010-5-19:8:5", "h")=9 h:两位数表示的小时数 如:Format("2010-5-19:8:5", "hh")=09 n:分钟数(0-59) 如:Format("2010-5-19:8:5", "n")=8 nn:两位数表示的分钟数(00-59) 如:Format("2010-5-19:8:5", "nn")=08 s:秒数(0-59) 如:Format("2010-5-19:8:5", "s")=5 ss:两位数表示的秒数(00-59) 如:Format("2010-5-19:8:5", "ss")=05 ttttt:标准时间,当小时数小于10时不带0,与h:mm:ss 或h:nn:ss 相同 如:Format("2010-5-19:8:5", "ttttt")=9:08:05 AM/PM:显示当前为AM或PM 如:Format("2010-5-111:59:59", "AM/PM")=AM Format("2010-5-112:0:0", "AM/PM")=PM A/P:显示当前为A或P 与 AM/PM 一样,这里不再举例。 说明: 可以多种格式联合使用,如: Format("2010-5-1 9:8:5", "dddddd aaaa")=2010年5月1日星期六 三、文本格式 @:匹配位置插入格式化文本,如: 在"abcde"前插入文本"X",代码为:Format("abcde","X@")=Xabcde 在"abcde"第1位字符后面插入文本"X",代码为:Format("abcde","@X")=aXbcde 在"abcde"第2位字符后面插入文本"X",代码为:Format("abcde","@@X")=abXcde 在"abcde"第3位字符后面插入文本"X",代码为:Format("abcde","@@@X")=abcXde 当点位符@比原文本字符串多时,刚在相应位置上添加空格,如: Format("abc", "X@@@@")="X abc" Format("abc", "X@@@@@")="X abc" Format("t", "@@a@")=" at"(空格空格at) 与!配合可从后面截取一段文本,如: 截取"abcde"后面1个字符文本,代码为:Format("abcde","!@")=e 截取"abcde"后面2个字符文本,代码为:Format("abcde","!@@")=de 截取"abcde"后面3个字符文本,代码为:Format("abcde","!@@@")=cde 截取"abcde"后面两位,并在前面添加"XY",代码为:Format("abcde","!XY@@")=XYde &:字符占位符,与@基本相同 <:强制将所有字符以小写格式显示。 如:Format$("I LoveYou", "<")=i love you >:强制将所有字符以大写格式显示。 如:Format$("ILove You", ">")=I LOVE YOU
6. vba调用函数代码
可以的。
CALL通常指REMOTE CALL,是一种注入外部EXE程序从外部调用函数的技术。CALL的使用一般需要编写复杂的汇编代码。VB的关键词 (调用) 用于将程序的执行交给其他的代码段,通常是一个子例程,同时保存必要的信息,从而使被调用段执行完毕后返回到调用点继续执行。描述 将控制权传递给 Sub 过程或 Function 过程。语法 [Call] name [argumentlist] Call 语句语法有以下部分: 部分 描述 Call 可选关键字。如果指定此关键字,则必须用括号把 argumentlist 括起来。例如: Call MyProc(0) name 必选。要调用的过程名。argumentlist 可选。传递给过程的变量、数组或表达式列表,用逗号分隔每一项。说明 在调用过程时,不必使用 Call 关键字。然而,如果使用 Call 关键字调用要求参数的过程,则必须用括号将 argumentlist 括起来。如果省略 Call 关键字,那么必须也同时省略 argumentlist 参数两边的括号。使用 Call 语法调用内部函数或使用用户自定义函数,函数返回值都会被放弃。
7. vba调用函数Vlookup
用Vlookup函数结合column函数可以实现。具体操作如下:假设你ABC列的数据不动,将得到的结果放在EFG列:在F1单元格输入:=VLOOKUP(E1,$B$1:$C$2,COLUMN(A1),0),向下向右填充,然后删掉错误值。
8. vba调用函数界面
步骤如下:
1.首先就是打开excel软件
2.然后就是打开VBA编程界面
3.接着就是定义一个执行函数
4.然后就是介绍定义局部变量,定义方式为【dim 变量 as 类型】
5.接着就是私有变量的定义,定义方式【private 变量 as 类型】
6.然后就是共有变量的定义,定义方式【public 变量 as 类型】
7.接着就是全局变量,定义方式【Globlal 变量】
8.最后就是静态变量的定义,形如【static 变量 as 类型】,即可调用公共函数了。
9. vba调用函数返回值
1,vba字符串函数列表:
Trim(string) 去掉string左右两端空白
Ltrim(string) 去掉string左端空白
Rtrim(string) 去掉string右端空白
Len(string) 计算string长度
Left(string, x) 取string左段x个字符组成的字符串
Right(string, x) 取string右段x个字符组成的字符串
Mid(string, start,x) 取string从start位开始的x个字符组成的字符串
Ucase(string) 转换为大写
Lcase(string) 转换为小写
Space(x) 返回x个空白的字符串
Asc(string) 返回一个 integer,代表字符串中首字母的字符代码
Chr(charcode) 返回 string,其中包含有与指定的字符代码相关的字符
2,VBA转换函数列表:
CBool(expression) 转换为Boolean型
CByte(expression) 转换为Byte型
CCur(expression) 转换为Currency型
CDate(expression) 转换为Date型
CDbl(expression) 转换为Double型
CDec(expression) 转换为Decemal型
CInt(expression) 转换为Integer型
CLng(expression) 转换为Long型
CSng(expression) 转换为Single型
CStr(expression) 转换为String型
CVar(expression) 转换为Variant型
Val(string) 转换为数据型
Str(number) 转换为String
3,VBA时间函数:
Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
Date 返回包含系统日期的 Variant (Date)。
Time 返回一个指明当前系统时间的 Variant (Date)。
Timer 返回一个 Single,代表从午夜开始到现在经过的秒数。
TimeSerial(hour, minute, second) 返回一个 Variant (Date),包含具有具体时、分、秒的时间。
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目
Second(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一分钟之中的某个秒
Minute(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一小时中的某分钟
Hour(time) 返回一个 Variant (Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点
Day(date) 返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日
Month(date) 返回一个 Variant (Integer),其值为 1 到 12 之间的整数,表示一年中的某月
Year(date) 返回 Variant (Integer),包含表示年份的整数。
Weekday(date, [firstdayofweek]) 返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几
4,VBA获取文件列表:
Dir[(pathname[, attributes])] ;pathname 可选参数,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 (""); attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。
5,VBA删除文件:
Kill pathname 从磁盘中删除文件, pathname 参数是用来指定一个文件名
RmDir pathname 从磁盘中删除删除目录,pathname 参数是用来指定一个文件夹
6,用VBA打开文件:
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength] 能够对文件输入/输出 (I/O)。
pathname 必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode 必要。关键字,指定文件方式,有 Append、Binary、Input、Output、或 Random 方式。如果未指定方式,则以 Random 访问方式打开文件。
access 可选。关键字,说明打开的文件可以进行的操作,有 Read、Write、或 Read Write 操作。
lock 可选。关键字,说明限定于其它进程打开的文件的操作,有 Shared、Lock Read、Lock Write、和 Lock Read Write 操作。
filenumber 必要。一个有效的文件号,范围在 1 到 511 之间。使用 FreeFile 函数可得到下一个可用的文件号。 reclength 可选。小于或等于 32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
说明 对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。如果 pathname 指定的文件不存在,那么,在用 Append、Binary、Output、或 Random 方式打开文件时,可以建立这一文件。如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生。如果 mode 是 Binary 方式,则 Len 子句会被忽略掉。
重要 在 Binary、Input 和 Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在 Append 和 Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件
7,VBA读入文件:
Input #filenumber, varlist 从已打开的顺序文件中读出数据并将数据指定给变量
Get [#]filenumber, [recnumber], varname将一个已打开的磁盘文件读入一个变量之中。
8,写入文件:
Write #filenumber, [outputlist] 将数据写入顺序文件
Print #filenumber, [outputlist] 将格式化显示的数据写入顺序文件中
Put [#]filenumber, [recnumber], varname 将一个变量的数据写入磁盘文件中。
9,VBA关闭文件:
Close [filenumberlist] 关闭 Open 语句所打开的输入/输出 (I/O) 文件
注意 如果今后想用 Input # 语句读出文件的数据,就要用 Write # 语句而不用 Print # 语句将数据写入文件。因为在使用 Write # 时,将数据域分界就可确保每个数据域的完整性,因此可用 Input # 再将数据读出来。使用 Write # 还能确保任何地区的数据都被正确读出。Write 与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的引号之间插入逗号。Write # 语句在将 outputlist 中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10))。
10. vba调用函数并保留原格式
设定A1单元格格式为文本格式如下:
Sub 宏1() Range("A1").Select Selection.NumberFormatLocal = "@"End Sub
- 相关评论
- 我要评论
-