vba转换数据类型(VBA变量表示数组)

前言:

从上一篇文章开始,小编开始逐步向大家介绍如何通过VBA程序实现对EXCEL中数据的各种处理方法以及对其内置对象的操作(这里是上一篇文章链接)。

上一篇文章,我们介绍了变量的类型及声明方式,今天,我们将用一个篇幅介绍VBA各变量类型之间的相互转换和运算,然后,用一个篇幅介绍如何自定义函数,最后,用一个篇幅讲解变量的作用域。通过第一部分共四篇文章的介绍,大家将会对VBA中使用的变量及函数定义的方法有一个比较深刻的理解。

同上一篇文章一样,小编采用按钮 消息框的形式来试验程序结果,操作方法这里不再赘述,大家可以参看我们上一篇文章(这里是上一篇文章链接)。

一、将数值型变量转化为字符串型变量。

1.隐式转换

若将一个整型变量通过字符串连接运算符&相加,则得到一个字符串变量,也即在运算的过程中将整型变量的值隐式转换为了字符串并与另一个字符串变量连接,当然原整型变量的类型并不会发生改变,改变的只是值的类型。

例如,将字符串"这是个字符串:"赋值给字符串变量b,将整数5赋值给整型变量a,用连接符&将b和a连接起来,并赋值给字符串变量c。

在VBA编辑器中输入如下代码:

代码解释:

第一行:定义a为整型变量

第二行:定义b为字符串型变量

第三行:定义c为字符串型变量

第四行:将数值5赋值给整型变量a

第五行:将"这是个字符串:"赋值给字符串变量b

第六行:将字符串变量b连接整型变量a产生的新字符串复制给变量c

第七行:弹出消息框,内容为字符串变量c的值

切换到EXCEL界面,点击按钮:

若我们将上面代码中的连接符&改为加号 ,会发生什么呢?

修改后,点击按钮,运行程序,然而编译器报错:

加号(" ")运算符可以用于连接两个字符串,也可以用于两个数值变量的求和运算,此处将一个整形变量和一个字符串变量相加,编译器并不能够将整形变量的值5隐式转换为字符串变量,因此出错。

2.显式转换

此时我们需要用CStr()函数来显式地将整型变量5转换为字符串变量,再用加号连接两个字符串:

在编辑器中输入如下代码:

再运行程序,便可以正常执行了:

二、将字符串型变量转换为数值型变量

将字符串型变量转换为数值型变量必须满足一个条件,即字符串本身为数值,例如字符串"5"、"3.14"。

1.两个为数值的字符串相加示例,在编辑器中输入如下代码:

代码解释:

第一行:定义a为字符串型变量

第二行:定义b为字符串型变量

第三行:定义c为字符串型变量

第四行:将字符串"5"赋值给字符串变量a

第五行:将字符串"8"赋值给字符串变量b

第六行:将字符串变量a连接字符串变量b产生的新字符串赋值给变量c

第七行:弹出消息框,内容为字符串变量c的值

运行程序:

此时,因为a和b都是字符串,因此这里加号的作用不是求和运算,而是起到了连接字符串的作用,因此结果为"58",而不是13。

2.数值型变量和一个为数值的字符串变量相加:

代码解释:

第一行:定义a为整型变量

第二行:定义b为字符串型变量

第三行:定义c为整型变量

第四行:将5赋值给整型变量a

第五行:将字符串"8"赋值给字符串变量b

第六行:将整型变量a与字符串变量b求和产生的整型数值赋值给变量c

第七行:弹出消息框,内容为变量c的值

运行程序:

此时,编译器对字符串变量b进行了一个隐式转换,将其隐式转换为了整型变量。

三、浮点型变量转换为整型变量

在编辑器中输入如下代码:

代码解释:

第一行:定义a为单精度浮点型变量

第二行:定义a1为整型变量

第三行:定义b为单精度浮点型变量

第四行:定义b1为整型变量

第五行:将5.1的值赋值给a

第六行:将单精度浮点型变量a的值转换为整型并赋值给a1变量

第七行:将5.5的值赋值给b

第八行:将单精度浮点型变量b的值转换为整型并赋值给b1变量

第九行:用消息框输出字符串"a1="并连接a1变量,连接换行符(vbcrlf),连接字符串"b1=",连接b1变量的值。

运行程序:

CInt()函数为整型变量转换函数,CInt(a)的意思就是将单精度浮点型变量a的值转换为整型。由结果我们可以看出,整型转换函数是采用四舍五入的方式。如果我们想去除小数,只取整数部分怎么办呢?可以使用Int()函数:

再次查看结果:

但是如果我们想只要存在小数就向上进一位怎么办呢?仍然使用Int函数,修改如下代码:

运行程序:

好了,关于变量类型之间的相互转化,小编就介绍到这里。下一篇,我们将利用这两篇文章的知识,试着自定义几个能够实际在EXCEL中使用的函数,进入实际运用了。

(0)

相关推荐

  • Excel简体繁体转换的VBA代码

    在Excel中,没有简体和繁体文字之间的转换功能。 但是Word却有此功能,因此,我们可以在Excel中通过VBA代码调用Word的繁体和简体功能,实现在Excel中的简体繁体转换的功能。 下面就是与 ...

  • 效率工作:[6]VBA基本数据类型介绍

    从这一课开始进入VBA代码的编写,本文主要讲VBA中数据的类型.首先先学习一下数据类型,常用数据类型包括字符型数据.数值型数据.字节类型.布尔类型.日期类型.对象类型等6种数据类型. 本文为系列教程, ...

  • Excel 2010怎么调用VBA?excel调用vba方法介绍

    打开Excel 2010,默认状态下,你是找不到VBA的,因为这个东西太不常用了,于是,Excel 2010也把它隐藏了,从07版开始,这个功能就被隐藏了,但隐藏方法还不太一样. 步骤 1.默认情况下 ...

  • excel中使用vba制作查找功能控件

    excel中使用vba制作查找功能控件 操作方法 01 首先我们打开一个工作样表作为例子. 02 打开vba编辑器,插入一个新的模块,并在模块编辑窗口中输入以下代码: Sub 查找指定值() Dim ...

  • 什么是VBA VBA宏功能介绍

    Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。 ...

  • 将VBA代码编译封装成为DLL动态链接库的方法

    一、为什么要编译成为DLL 我们知道,Visual C++、Visual Basic和C++ Builder以及Delphi等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可 ...

  • excel vba是什么?

    故障分析:excel VBA其实就是大家代码编辑程序,有的人被人认为是宏,但是excel vba是包括宏程序的。下面还是一起来看看excel vba是什么?如何打开? 一、excel vba是什么? ...

  • Excel中VBA编程定义不同类型变量和作用域的公式方法

    Excel中的VBA编程能够让我们更加方便地操作Excel,下面给大家讲讲Excel中VBA编程定义不同变量和作用域的方法和公式.具体如下:1. 第一步,在电脑上打开Excel软件进入如图所示的Exc ...

  • LabVIEW-簇数组

    本文将讲解LabVIEW-函数选板-函数-编程-簇,类与变体-创建簇数组/索引与捆绑簇数组/簇至数组转换/数组至簇转换: 创建簇数组 01 创建簇数组函数位于:函数选板-函数-编程-簇,类与变体-创建 ...