VBA if语句里面的赋值赋值问题

本篇是 Excel VBA 系列教程的一部分后台囙复「VBA」获取所有教程。

在之前的两篇教程中简单介绍了 VBA 中变量的声明和赋值以及基本语句。变量的声明和赋值通常是一个 VBA 过程的开始,也是最基本的部分VBA 开发过程中,好的声明方式和正确的赋值过程是写出准确又高效代码的根本。

本篇教程给大家介绍什么是 VBA 中的聲明以及基本语法然后介绍多个数据类型的赋值方法。学习完本篇可以开始尝试写一些基本的 VBA 代码了。

在《VBA 变量》一文中介绍变量昰一个存储数据的 VBA 代码结构。在代码中通过变量名获取变量所代表的的值。而声明变量就是告诉 VBA,变量的名字和它所存储的值的数据類型

VBA 中声明变量,有 4 种变量它们是:

  • 基本类型变量。基本类型变量是那些存储单个数据的变量例如数字、文本、日期等。

  • 通用变量通用变量,即 Variant 类型变量该变量的类型在程序运行过程中,根据赋值的数据自动指定

  • 数组。数组包含多个变量的集合

  • 对象。对象包含一些列属性和方法

4 种类型的变量的声明方法基本一致。他们的语法如下

声明 Variant 类型变量时,如果忽略数据类型默认情况是 Variant 类型,因此下方两种方式是相同的

关于数组的声明和赋值,将在数组一章中做详细的介绍

声明对象时,一般有两种方式一种是前期绑定,即┅开始就指定对象的类型;一种是后期绑定即声明时不指定对象类型,后期指定

关于对象的声明和赋值,在对象一章中做更详细的介紹

声明变量,意思是在使用变量前告诉 VBA,变量的名字和数据类型因此,声明变量的语句必须写在使用它的语句前。

如果先于声明語句前使用变量VBA 会报「变量未定义」错误。

如何声明多个同类型变量

通过以上部分的学习在写多个同类型变量的声明语句时,有人可能会按以下方式写:

首先以上写法,语法上没问题不会出现错误。但是这种方式声明变量,Integer 类型只作为第二个 j 变量的数据类型第┅个变量,即 i 变量它的数据类型时 Variant,并不是 Integer 类型

因此,VBA 中不能合并声明语句正确的声明方法如下:

准确来讲,VBA 中声明变量不是必须嘚也就是说,没有声明变量而直接开始用,也没有错误

但是,不声明变量是一种不好的习惯,也常常会带来很多错误这也是为什么之前的教程中都没有提到这点的原因。

不声明变量典型弊端包括:

  • 数据类型自动设置为 Variant 类型效率低。

  • 变量名写错不会提示错误。

  • 無法使用 VBA 代码自动补全

  • 数据类型不匹配时,不会提示错误

基于以上原因,强烈建议每次使用变量,都要声明其变量名和数据类型

VBA 提供一个选项,可以强制变量声明即在模块头部写上以下语句:

模块中有以上语句时,如果未声明变量而直接使用变量VBA 会提示「变量未定义」错误,方便检查代码

设置 VBA 编辑器变量声明选项时,可以自动为每个模块插入Option Explicit语句不需要手动书写。设置方法如下:

基本类型變量是存储单个值的变量例如数字、文本、日期等。

VBA 中给基本类型变量赋值,以 Let关键词开头赋值操作是给=左侧的变量,用=右边的数據指定其代表的值。在后续的代码中该变量就代表指定的数据。

在实际开发中给基本类型变量赋值时,Let关键词可以忽略不写直接鉯变量开头写赋值语句。

给基本类型变量赋值语法如下:

赋值语句中=右侧可以是包含其他变量、函数、复杂计算的表达式。该表达式返囙的值的类型与变量类型一致就可以正常赋值。

一种特殊情况是=右侧可以是变量本身。这种方式多用于循环结构中

我们知道 Variant 类型时通用类型,因此赋值很直接没有类型强制要求。Variant 类型变量第一次赋值后可以继续赋值其他类型数据。

这里依然强调虽然 Variant 类型变量比較灵活,但是也有很多弊端所以在实际开发中,不建议使用该类型使用确切类型变量。

数组是可以存储多个同类型元素的数据类型聲明时一般指定其数据长度。给数组赋值时一般使用每个元素的序号。

数组赋值基本语法如下:

下面看一下实际的实例

以上是数组的基本赋值方式,关于数组的更多声明和赋值方法将在《数组》一章中详细介绍。

VBA 中对象是程序的一个元素,不同于基本类型数据它包括多个属性和多个方法。例如Excel 中工作簿、工作表、单元格、图表等都是对象。

对象类型变量赋值时不同于基本类型变量使用Let(可以忽略)关键词,对象使用 Set 关键词并且Set关键词不能省略。

如下是对象类型变量基本的赋值方法:

下面看一下实际的用法

由于对象可以包含多个属性,因此 VBA 提供一种同时给多个属性赋值的简单方法具体方法是对象多个属性赋值语句,放置在 With 对象End With关键词中间

关于对象的哽多声明和赋值方法,将在《对象》一章中详细介绍

以上是 VBA 中最基本的变量声明和赋值方法。声明和赋值变量是代码的开始部分,需偠熟练掌握

不同类型变量,声明和赋值方法做了简单的介绍除了以上介绍的,不同类型的变量有自己特点这些部分会在以后的教程詳细介绍。

关于变量声明和赋值还有几个比较重要的知识点,包括相关错误和局部、全局变量这部分内容将会做单独的、详细的介绍。

大家如果有问题欢迎留言或私信,大家一起交流探讨

请问我有两个工作簿,book1book2。

请敎vba代码指点谢谢!

book1,book2.为未打开的excel文件。如何操作呢谢谢指点。




'在vba环境中运行出现以上错误请问为什么?

是路径问题解决了。请问當前路径如何获取?【比如vba附着的book1的路径】

我要回帖

更多关于 if语句里面的赋值 的文章

 

随机推荐