VBA 入门 函数(三)

(大部分搜集于网络博客 总结整理)

字符串函数

====================================================================================

mid(字符串,从第几个开始,长度)  在[字符串]中[从第几个开始]取出[长度个字符串]
例如 mid("小欣无敌",1,3) 则返回 "小欣无"
 
instr(从第几个开始,字符串1,字符串2) 从规定的位置开始查找,返回字符串2在字符串1中的位置
例如 instr(1,"小欣无敌","小") 则返回 1,instr(2,"小欣无敌","小"),则返回 0 。 0 表示未找到
 
InStrRev(字符串1,字符串2,从第几个开始) 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。
例如 instrRev("小欣无敌","小",2) 则返回 2 ; instrRev("小欣无敌","欣",1) 则返回 0 ,因为它从"小欣无敌"的第1个字开始往前查找,所以找不到 。0 表示未找到
 
left(字符串,长度) 从[字符串]的左边开始返回[长度]个字符
例如 Left("小欣无敌,3) 则返回 "小欣无"
 
right(字符串,长度) 从[字符串]的右边开始返回[长度]个字符
例如 Right("小欣无敌",3) 则返回 "欣无敌"
 
ucase(字符串) 返回[字符串]的大写形式,只对英文字符有效
例如 ucase("xiaoXINwuDi") 则返回 "XIAOXINWUDI"
 
lcase(字符串) 返回[字符串]的小写形式,只对英文字符有效
例如 lcase("xiaoXINwuDi") 则返回 "xiaoxinwudi"
 
asc(字符) 返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程
例如 asc("小") 则返回 -12127 ; asc("小欣无敌") 也返回 -12127
 
chr(ASCii编码) 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程
例如 chr(-12127) 则返回 "小" ;chr(asc("小")) 则返回"小"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本)
 
trim(字符串) 返回去掉了前、后之后的[字符串]
例如 trim("   小 欣   无敌   ") 则返回 "小 欣   无敌" ,中间的空格不受任何影响
 
string(个数,字符) 返回[个数]个[字符]
例如 string(3,"小") 则返回 "小小小" , 而 string(3,"小欣无敌") 也返回 "小",只有首字符才有效
 
space(个数) 返回[个数]个空格
例如 space(5) 则返回 "   "
 
strconv(字符串,转换的类型) 将字符串转成指定的类型。常用的类型只有两个,vbwide 半角转成全角,vbNarrow 全角转成半角
例如 strconv("xiao",vbwide) 则返回 "XIAO",而strconv("XIAO",vbnarrow) 则返回 "XIAO"
’备注 vbwide = 4 ,vbnarrow = 8
 
len(字符串) 返回[字符串]的长度
例如 len("小欣无敌") 则返回 4

格式化函数===================================================================================

Format[$] ( expr [ , fmt ] )
format 返回变体型
format$ 强制返回为文本
--------------------------------
数字类型的格式化
--------------------------------

固定格式参数:
    General Number 普通数字,如可以用来去掉千位分隔号
    format$("100,123.12","General Number") 返回值 100123.12
   
    Currency 货币类型,可添加千位分隔号和货币符号
    format$("100123.12","Currency") 返回值 ¥100,123.12
   
    Fixed 格式为带两位小数的数字
    format$("100123","Fixed") 返回值 100123.00
   
    Standard 标准,即带千位分隔号和两位小数
    format$("100123","Standard") 返回值 100,123.00
   
    Percent 百分数
    format$("100123","Percent") 返回值 10012300.00%
   
    Scientific 科学记数法
    format$("100123","Scientific") 返回值 1.00E+05
   
    Yes/No 当值为0时返回 NO,否则返回 YES
    format$("100123","Yes/No") 返回值 Yes
   
    True/False 当值为0时返回 False,否则返回 True
    format$("100123","True/False") 返回值 True
   
    On/Off 当值为0时返回 Off,否则返回 On
    format$("100123","Yes/No") 返回值 On
    自定义格式参数
   
    "" 不进行格式化 返回值 原值
   
    0 占位格式化,不足补0
    format$("100123","0000000") 返回值 0100123
   
    # 占位格式化,不足时不补0
    format$("100123","#######") 返回值 100123
   
    . 强制显示小数点
    format$("100123.12",".000") 返回值 100123.120
   
    % 转化为百分数,一个%代表乘以100
    format$("10.23","0.00%") 返回值 1023.00%
    format$("10.23","0.00%%") 返回值 102300.00%%
   
    , 以千为单位格化
    format$("10.23",",") 返回值 0
    format$("10010.23",",") 返回值 10
    format$("10010.23",",0.00") 返回值 10.01
   
    E- E+ e- e+ 显示为科学记数(要注意格式语句,否则会和E的其它含义相混)
    Format$(12.5,"0.00E+00") 返回值 1.25E+01
   
    $ 强制显示货币符号
    format$("10.23","{threadcontent}.00") 返回值 ¥10.23
   
    - + ( ) space 按位置显示本样
    Format$("1234.56","-(0.00)") 返回值 -(1234.56)
   
    \ 转义符,显示出特殊符号
    Format$("1234.56","\#.00") 返回值 #1234.56
   
    "ABC" 显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 ("))
    Format$(123.45,"TTT") 返回值 TTT
    注:当双引号中的文本包含特殊的参数符号如e,要使用转义符"\",否则会按e的作用显示
   
    ; 类似多目运算符的作用。
   
    当共有 四 部分时,
    当大于0时,按第一部分进行格式化,
    当小于0时按第二部分进行格式化,
    当等于0时按第三部分进行格式化,
    当为null值时,按第四部分进行格式化。如:
    Format$(0,"0.00;负数;零;空") 返回值 零
   
    当共有 三 部分时,
    当大于0时,按第一部分进行格式化,
    当小于0时按第二部分进行格式化,
    当等于0时按第三部分进行格式化,如:
    Format$(-10,"0.00;ttt;零") 返回值 ttt
   
    当共有 两 部分时,
    当大于或等于0时,按第一部分进行格式化,
    当小于0时按第二部分进行格式化,
    Format$(-123,"0.00;abc") 返回值 abc
    Format$(123,"0.00;abc") 返回值 123.00
   
    当共有 一 部分时,按分号左边进行格式化

---------------------------------
日期类型的格式化
---------------------------------
    注意:在中文操作系统中,系统自动将月份输为如:五月,而非 May
   
    固定格式参数
    General Date 基本类型
    Format$(Now,"General Date") 返回值 2006-5-25 14:56:15
   
    Long Date 操作系统定义的长日期
    Format$(Now,"Long Date") 返回值 2006年5月25日
   
    Medium Date 中日期(yy/mmm/dd)
    Format$(Now,"Medium Date") 返回值 06-5月-25
   
    Short Date 操作系统定义的短日期
    Format$(Now,"Short Date") 返回值 2006-5-25
   
    Long Time 操作系统定义的长时间
    Format$(Now,"Long Time") 返回值 15:06:36
   
    Medium Time 带AM/PM的12小时制,不带秒
    Format$(Now,"Medium Time") 返回值 03:08 PM
   
    Short Time 24时制的时间,不带秒
    Format$(Now,"Short Time") 返回值 15:08
   
    自定义格式参数
    : 用来标识时间字符的间隔
    Format$(Time(),"hh:nn") 返回值 15:25
   
    / 用来标识日期字符的间隔
    Format$(now,"yyyy/mm/dd") 返回值 2006-05-25
   
    c 格式化为国标的日期和时间
    Format$(Now,"c") 返回值 2006-5-25 14:56:15
   
    y 一年中的第几天
    Format$(Now,"y") 返回值 145
   
    d 一个月中的第几天(1-366)
    Format$(Now,"d") 返回值 25
   
    dd 当小于10时前面带0的天数(01-31)
    Format$("2006-1-7","dd") 返回值 07
   
    ddd 周几
    Format$(Now,"ddd") 返回值 周四
   
    dddd 星期几
    Format$(Now,"dddd") 返回值 星期四
   
    ddddd 显示标准日期
    Format$(Now,"ddddd") 返回值 2006-05-25
   
    dddddd 长日期
    Format$(Now,"dddddd") 返回值 2006年5月25日
   
    w 一个星期中的第几天
    Format$(Now,"w") 返回值 5
   
    ww 一年中的第几周
    Format$(Now,"ww") 返回值 21
   
    m 月数(注:当用于时间时,也可以表时为分钟)
    Format$(Now,"m") 返回值 5
    Format$(Now,"h:m") 返回值 16:11
   
    mm 当小于10时前面带0的月数(注:当用于时间时,也可以表时为带0的分钟)
    Format$(Now,"m") 返回值 05
    Format$(Now,"hh:mm") 返回值 16:09
   
    mmm 月份
    Format$(Now,"mmm") 返回值 五月
   
    q 一年中的第几季(1-4)
    Format$(Now,"q") 返回值 2
   
    yy 两位数的年份(00-99)
    Format$(Now,"yy") 返回值 06
   
    yyyy 四位数的年份(0100-9999)
    Format$(Now,"yyyy") 返回值 2006
   
    h 一天中的第N小时(0-23)
    Format$(Now,"h") 返回值 16
   
    hh 当小于10时带0的小时数(00-23)
    Format$("7:30:28","hh") 返回值 07
   
    n 一小时的分钟数(0-59)
    Format$("7:30:28","n") 返回值 30
   
    nn 当小于10时带0的分钟数(00-59)
    Format$("7:3:28","n") 返回值 03
   
    s 一分钟中的秒数(0-59)
    Format$("7:30:8","s") 返回值 8
   
    ss 当小于10时带0的分钟数(00-59)
    Format$("7:3:8","ss") 返回值 08
   
    ttttt 标准时间,小时数当小于10时不带0,与h:mm:ss相同
    Format$("7:3:28","ttttt") 返回值 7:03:28
   
    AM/PM 显示当前为AM或为PM
    Format$(Now,"AM/PM") 返回值 PM
   
    A/P 显示当前为A或为P
    Format$(Now,"A/P") 返回值 P
   
    AMPM 对0至2359的数值进行判断是AM还是PM,可以看作是同等于对00:00至23:59的数字进行判断,如1000可以看作是10:00。
    Format$(1000,"AMPM") 返回值 AM
   
    联合格式化
   
    m/d/yy Format$(Now,"m/d/yy") 返回值 5-25-06
   
    d-mmm-yy Format$(Now,"d-mmm-yy") 返回值 25-5月-06
   
    d-mmmm Format$(Now,"d-mmmm") 返回值 25-五月
   
    mmmm-yy Format$(Now,"mmmm-yy") 返回值 五月-06
   
    hh:mm AM/PM Format$(Now,"hh:mm AM/PM") 返回值 04:50 PM
   
    h:mm:ss a/p Format$(Now,"h:mm:ss a/p") 返回值 4:51:38 p
   
    h:mm Format$(Now,"h:mm") 返回值 16:51
   
    h:mm:ss Format$(Now,"h:mm:ss") 返回值 16:51:38
   
    m/d/yy h:mm Format$(Now,"m/d/yy h:mm") 返回值 5-25-06 16:54

----------------------------------
文本类型的格式化
----------------------------------
    ; 当两部分时,则第一部分为非空格式化,第二部分为null值或空值的格式化表达式
    @ 匹配位置插入格式化文本,占位位置不存在时,显示空白(空字符串)
   
    只有一个@符号时,是在最后面加上格式化文本
    Format$("CHIN","@a") 返回值 CHINa
   
    有多个@占位符,是按从右至左匹配,并在相应的位置上显示格式化文本
    Format$("CHIN","@[email protected]@") 返回值 CHaIN
   
    当与 ! 配合时,则变为从左至右匹配
    Format$("CHIN","[email protected]@@") 返回值 CaHIN
   
    当占位符比原文本字符串多时,刚在相应位置上添加空格
    Format$("C","@@[email protected]") 返回值 空白空白aC
   
    & 字符占位符。除在当占位位置不存在时,不显示外,其余均与@相同
   
    当占位符比原文本字符串多时,刚在相应位置上添加空格
    Format$("C","&&a&") 返回值 aC
   
    < 强制小写。将所有字符以小写格式显示。
    Format$("I love you","<") 返回值 i love you
   
    > 强制大写。将所有字符以大写格式显示。
    Format$("I love you",">") 返回值 I LOVE YOU
   
    ! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。
    Format$("CHIN","[email protected]@@") 返回值 CaHIN

----------------------------------------
强制使用中文格式的日期时间
----------------------------------------
    aaaa 星期
    Format$(Now,"aaaa") 返回值 星期五
   
    O 中文月份
    Format$(Now,"O") 返回值 五月
   
    o 单字节月份
    Format$(Now,"o") 返回值 5月
   
    A 中文日期
    Format$(Now,"A") 返回值 二十六日
   
    a 单字节日期
    Format$(Now,"a") 返回值 26日
   
    E 短中文年份
    Format$(Now,"E") 返回值 六年
   
    e 单单字节年份
    Format$(Now,"e") 返回值 6年
   
    EE 中文年份
    Format$(Now,"EE") 返回值 二○○六年
   
    ee 单字节年份
    Format$(Now,"ee") 返回值 2006年
   
    想不到中文日期的问题就这么容易解决:
    Format$(Now,"EEOA") 返回值 二○○六年五月二十六日

时间: 2024-08-30 08:39:05

VBA 入门 函数(三)的相关文章

Excel VBA入门(十)用户窗体开发

VBA 中的用户窗体就是指带 UI 的用户界面,在运行的时候会单独弹出一个窗口,类似于在 windows 系统中运行的一个可执行程序一样(这个说法不太严谨,因为可执行程序也可能是只有命令窗口而没有 UI 的).再具体一点,就是一个窗口界面当中,有可能会包含有文本框.复选框.单选按钮.下拉列表,就如在网页中填写的表单一样.再具体一点,就是如下图这样的: 1. 用户界面设计 如上图,UI 设计的部分其实是很简单的,微软的特色,直接拖拉拽就可以实现了.而每一个控件(或者称为元素,也即放进窗体中的各种按

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

VBA语言(三)函数

一.函数过程 1.VBA有以下三种函数过程: 子程序过程(子程序)执行一些有用的任务但是不返回任何值.他们以关键字Sub开头,和关键字End Sub结束: 函数过程(函数)执行具体的任务并返回值.以关键字Function开头,End Function结束: 属性过程用于自定义对象.使用属性过程,你可以设置和获取对象属性的值,或者设置对另外一个对象的引用. 2.创建函数过程 关于函数名称 函数名称应该点名该函数的作用,并且必须和变量的命名规则一致. 创建函数 1)声明一个空函数过程: Public

RxJava入门系列三,响应式编程

RxJava入门系列三,响应式编程 在RxJava入门系列一,我向你介绍了RxJava的基础架构.RxJava入门系列二,我向你展示了RxJava提供的多种牛逼操作符.但是你可能仍然没能劝服自己使用RxJava,这一篇博客里我将向你展示RxJava提供的其他优势,没准了解了这些优势,你就真的想去使用RxJava了. 异常处理 直到目前为止,我都没有去介绍onComplete()和onError()方法.这两个方法是用来停止Observable继续发出事件并告知观察者为什么停止(是正常的停止还是因

RequireJS入门(三)

这篇来写一个具有依赖的事件模块event.event提供三个方法bind.unbind.trigger来管理DOM元素事件. event依赖于cache模块,cache模块类似于jQuery的$.data方法.提供了set.get.remove等方法用来管理存放在DOM元素上的数据. 示例实现功能:为页面上所有的段落P元素添加一个点击事件,响应函数会弹出P元素的innerHTML. 创建的目录如下 为了获取元素,用到了上一篇写的selector.js.不在贴其代码. index.html 如下

canvas入门-1三种填充方式、渐变、模式

1.定义canvas的尺寸的时候最好用html的方式定义,用width和height的方式,用css会导致画布按照css设定的方式进行缩放,cavas内部是一个2d的渲染环境 2.一个canvas对应一个2d的渲染环境,绘制图形的操作都是在2d渲染环境中进行的 <canvas id="canvas-1" style="border:solid 1px gray;" width = "400" height="400"&g

C语言快速入门系列(三)

C语言快速入门系列(三) 结构化的程序设计 -----------------------------------转载请注明出处:coder-pig 本节引言: 在前面的学习中,我们对C语言的基本语法进行了了解,可以暂时理解成我们学了单词; 现在要做得就是学语法,也就是算法;就是构成一个一个基本的程序! 在这一节中我们要学习的是C语言中的输入输出,以及程序的三种结构(顺序,选择,循环结构) 本节学习路线图: 正文: 1.字符输入/输出函数 2.格式输入/输出函数 跟前面的单个字符的输入输出不同,

Perl入门(三)Perl的数组

Perl数组的声明方式 Perl使用"@"符号声明一个数组:@array: 使用"()"或"qw()"声明数组中元素: 一个完整的声明方式为: @array = (12,"123","abc",$var);......方法一 或者 @array = qw(12 123 abc); ............方法二 或者 @array = (1..10).....................方法三 Perl

[转]C# 互操作性入门系列(三):平台调用中的数据封送处理

传送门 C#互操作系列文章: C#互操作性入门系列(一):C#中互操作性介绍 C#互操作性入门系列(二):使用平台调用调用Win32 函数 C#互操作性入门系列(三):平台调用中的数据封送处理 C#互操作性入门系列(四):在C# 中调用COM组件 本专题概要 数据封送介绍 封送Win32数据类型 封送字符串的处理 封送结构体的处理 封送类的处理 小结 一.数据封送介绍 看到这个专题时,大家的第一个疑问肯定是--什么是数据封送呢?(这系列专题中采用假设朋友的提问方式来解说概念,就是希望大家带着问题