VBA基础知识整理(数据类型)
'1 数据类型综述
'在VBA中的数据类型有整数、文本、对象等类型。这些不同的类型有着特定的作用,在进行运算时也会占用
'不同大小的内存,所以我们在编写程序时为了提高运行效率,一般都要定义数据的类型。
'2 数据类型对程序运行的影响
'byte 占用1个字节'integer,boolean 占用2个字节'long,single 占用4个字节'Double,Currency,date 占用8个字节'object 占用4个字节'string(不定长) 占用10+字符长度个字节'String(定长) 占用字符串长度个字节'Variant(任意数字类型) 占用16个字节'Variant(字符串) 占用24+字符串长度个字节Sub sss1()Dim x As LongDim t'Dim k1 As Byte '用时0.03125sDim k'Dim k1 As Integer '用时0.15625sDim k1 As String '用时0.203125sk = 1t = TimerFor x = 1 To 1000000k1 = kNext xDebug.Print Timer - tEnd Sub
数据类型检查
'1 检查是否为空
Sub s1()Debug.Print Range("a1") = "" '判断真空,无法判断假空Debug.Print Len(Range("a1")) = 0 '判断真空,无法判断假空Debug.Print VBA.IsEmpty(Range("a1")) '假空时返回FALSEDebug.Print VBA.TypeName(Range("a1").Value) '返回Empty表示为空
End Sub---------------------------------------------------------------------------Sub 速度测试()Dim tDim x As Longt = TimerFor x = 1 To 100000'If Range("a1") = "" Then '用时0.81' If Len(Range("a1")) = 0 Then '0.84' If VBA.IsEmpty(Range("a1")) Then '速度 0.79'If VBA.TypeName(Range("a1").Value) = Empty Then '0.84End IfNext xDebug.Print Timer - tEnd Sub
'2 检查是否为数字
Sub s2()Debug.Print VBA.IsNumeric(Range("a1"))Debug.Print Application.WorksheetFunction.IsNumber(Range("A1"))Debug.Print VBA.TypeName(Range("A1").Value)' Debug.Print Range("a1").Value Like "#" '判断一位整数' Debug.Print Range("a1") Like "*#*" '判断是否包含数字End Sub-------------------------------------------------
Sub 速度测试2()Dim tDim x As Longt = TimerFor x = 1 To 100000'If VBA.IsNumeric(Range("a1")) Then '用时0 0.79'If Application.WorksheetFunction.IsNumber(Range("A1")) Then '0.9218'If VBA.TypeName(Range("A1").Value) = "Double" Then '速度 0.84End IfNext xDebug.Print Timer - tEnd Sub
'3 检查是否为文本
Sub t3()Debug.Print Application.IsText(Range("a1"))Debug.Print "B" Like "[A-Za-z]" '判断是否为字母Debug.Print Len(Range("a1"))Debug.Print Range("a1") Like "*[一-龥]*" '判断字符串中是否包含汉字End Sub
'4 判断结果是否为错误值
Sub s4()Debug.Print VBA.IsError(Range("a1"))Debug.Print TypeName(Range("a1").Value)
End Sub
'5 判断是否为数组
Sub s5()Dim arrarr = Range("A1:A2")Erase arrDebug.Print VBA.IsArray(arr)End Sub
'6 判断是否为日期
Sub s6()Debug.Print VBA.IsDate(Range("a2"))
End Sub
数据类型转换
'一、类型转换函数:CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar
'上述函数是把表达式转换成相对应的数字类型,比如clng转换成长整型,cstr转换成文本型
Sub ss1()Dim s As Integers = 2334MsgBox 截取(CStr(s)) '因为自定义函数参数要求是文本类型,而s是数值类型,所以需要用cstr转换成文本类型
End Sub
---------------------------------------------------------
Function 截取(x As String)截取 = Left(x, 2)
End Function
-----------------------------------------------
Sub ss2()Debug.Print 1 + True 'CInt(1 = 1)
End Sub
--------------------------------------------
'二、Format函数
'format函数用法等同于工作表中的text函数,可以格式化显示数字或文本Sub ss3()Dim n, n1n = 234.3372n1 = 41105Debug.Print Format(n, "0.00")Debug.Print Format(n, "0")Debug.Print Format(n, "\价格\:0.00")Debug.Print Format(n1, "yyyy-mm-dd")End Sub
VBA基础知识整理(数据类型)相关推荐
- VBA基础知识整理(字典,自定义函数)
字典 基本概念 '1 什么是VBA字典?'字典(dictionary)是一个储存数据的小仓库.共有两列.'第一列叫key , 不允许有重复的元素.'第二列是item,每一个key对应一个item,本列 ...
- VBA基础知识整理(文本文件操作)
txt文件的读写 'Open 文件名 for 打开方式 as 文件编号'打开方式:'Input :只能读,不能写'Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件'Output ...
- VBA基础知识整理(日期,时间)
日期和时间计算 '1 计算两个日期相隔天数,月数,年数,小时,分种,秒 Sub tt1()Dim d1, d2 As Dated1 = #11/21/2011#d2 = #12/1/2011#Debu ...
- VBA基础知识整理(文件操作)
文件操作 '1 判断A.Xls文件是否存在 Sub W1()If Len(Dir("d:/A.xls")) = 0 ThenMsgBox "A文件不存在"Els ...
- VBA基础知识整理(图象图表)
shape对象的类型和属性 'Shapes 对象, '该对象代表工作表或图形工作表上的所有图形,它是sheets和chart的子对象(属性) Sub t2()On Error Resume NextD ...
- python常用变量名_python基础知识整理
Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...
- 第一章、Excel VBA基础知识
01-01.Excel VBA简介 1.VBA是什么,能干什么 VBA可以说是一种编程语言,是VB的分支 VBA的作用,可以将重复的Excel工作简单化 2.VBA具备的基础知识 2.1基础操作,能发 ...
- 计算机二级c语基础知识,计算机二级C语基础知识整理.doc
计算机二级C语基础知识整理 1.1 算法 算法:是一组有穷指令集,是解题方案的准确而完整的描述.通俗地说,算法就是计算机解题的过程.算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计. ...
- 使用Aspose.Cells的基础知识整理
使用Aspose.Cells的基础知识整理 转自 http://www.cnblogs.com/kenblove/archive/2009/01/07/1371104.html 这两天用Aspose. ...
最新文章
- 中国生物燃料市场产能预测与十四五战略前景展望报告2022年
- error 4 in libc-2.12.so 解决办法
- Windows 10——安装Snort_2_9_16
- LeetCode 297. 二叉树的序列化与反序列化(前序遍历层序遍历)
- Qt笔记-AES加密
- springboot整合redis,推荐整合和使用案例(2021版)
- 如何动态设置控件的宽高度?
- c语言处理机调度实验报告,操作系统实验处理机调度C语言实现.docx
- 大数据系统架构的通用模块有哪些
- 【语义分割】Pyramid Scene Parsing Network(PSNET)
- Unity属性(Attributes)
- 如何将两张图片合成一张图片
- 玉蟾宫【洛谷P4147】
- windows cmd 添加路由命令
- Pytorch 深度强化学习模型训练速度慢
- 二战时图灵机破译的Enigma密码,现在AI仅需13分钟便可破译
- 蓝桥杯陶陶摘苹果C语言,Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
- 作为程序员面试官的3点建议
- 算法基础--梯度消失的原因
- 职称计算机加分,软著评职称的加分规则
热门文章
- 使用uniapp开发, 引入腾讯位置服务
- Airflow的安装:在线安装、离线安装、问题汇总
- 基于spi接口的oled屏Android服务框架
- 3.10 docker---概念介绍,安装和初识docker,docker的一些基本命令,使用docker部署一个nginx,
- UWP开发细节记录:WRL::ComPtr 的坑
- 百度地图系列02——地图移动到指定点
- linux shell正则表达式如何匹配域名(包含中文域名)
- 2018山东计算机录取分数,【分数线】2018山东省公费师范生分数线汇总
- Electron打包(windows平台)
- DSPF28335 SCI FIFO串口通讯