VBA基础语法:变量

在VBA中如何定义变量和数据类型? 变量声明的基本语法 在VBA中,使用“Dim”关键字来声明变量。基本语法为“Dim变量名As数据类型”。例如,要声明一个名为“age”的整数变量,可以写成“Dim age As Integer”。这表示“age”这个变量将用于存储整数类型的数据。 除了“Dim”,还可以使用“Public”和“Private”关键字来声明变量。“Public”用于声明公共变量,这种变量可以在整个项目(包括不同的模块)中被访问。例如,“Public globalVar As String”声明了一个公共的字符串变量“glo 阅读详情

目录

声明变量

Visual Basic 的命名规则

使用 Public 语句

使用 Private 语句

使用 Static 语句

使用 Option Explicit 语句

为自动化声明一个对象变量

写赋值语句

声明常数


声明变量

通常会使用 Dim 语句来声明变量。一个声明语句可以放到过程中以创建属于过程的级别的变量。或在声明部分可将它放到模块顶部,以创建属于模块级别的变量。

下面的示例创建了变量 strName 并且指定为 String 数据类型。

Dim strName As String

如果该语句出现在过程中,则变量 strName 只可以在此过程中被使用。如果该语句出现在模块的声明部分,则变量 strName 可以被此模块中所有的过程所使用,但是不能被同一工程中不同的模块所含过程来使用。为了使变量可被工程中所有的过程所使用,则在变量前加上 Public 语句,如以下的示例:

Public strName As String

关于命名变量的详细信息,请参阅 Visual Basic 帮助中的“Visual Basic 命名规则”。

Visual Basic 的命名规则

当在 Visual Basic 的模块中为过程、常数、变量以及参数命名时,可以使用下列的规则:

  • 第一个字符必须使用英文字母。
  • 不能在名称中使用空格、句点(.)、惊叹号(!)、或 @、&、$,# 等字符。
  • 名称的长度不可以超过 255 个字符。
  • 通常,使用的名称不能与 Visual Basic 本身的 Function 过程、语句以及方法的名称相同。必须退出使用与程序语言的关键字相同的名称。若所使用的内在语言函数,语句或方法与所指定的名称相冲突,则必须显示地识别它。常规会将内建函数,语句或方法的名称之前加上关联的类型库的名称。例如,如果有一个名为 Left 的变量,则只能用 VBA.Left 来调用 Left 函数。
  • 不能在范围的相同层次中使用重复的名称。例如,不能在同一过程中声明两个命名为 age 的变量。然而,可以在同一模块中声明一个私有的命名为 age 的变量和过程的级别的命名为 age 的变量。
  • 注意 Visual Basic 不区分大小写,但它会在名称被声明的语句处保留大写。
     

变量可以声明成下列数据类型中的一种:Boolean、Byte、Integer、Long、Currency、Single、Double、Date、String(变长字符串)、String * length (定长字符串)、Object 或 Variant。如果未指定数据类型,则 Variant 数据类型被赋予缺省。也可以使用 Type 语句来创建用户定义类型。关于数据类型的详细信息,请参阅 Visual Basic 帮助中的“数据类型总结”。

 

可以在一个语句中声明几个变量。而为了指定数据类型,必须将每一个变量的数据类型包含进来。在下面的语句中,变量 intX、intY、与 intZ 被声明为 Integer 类型。

Dim intX As Integer, intY As Integer, intZ As Integer

在下面的语句中,变量 intX 与 intY 被声明为 Variant 类型 ;只有 intZ 被声明为 Integer 类型。

Dim intX, intY, intZ As Integer

在声明语句中,不一定要提供变量的数据类型。若省略了数据类型,则会将变量设成 Variant 类型。

使用 Public 语句

可以使用 Public 语句去声明公共模块级别变量。

Public strName As String

公有变量可用于工程中的任何过程。如果公有变量是声明于标准模块或是类模块中,则它也可以被任何引用到此公有变量所属工程的工程中使用。

使用 Private 语句

可以使用 Private 语句去声明私有的模块级别变量。

Private MyName As String

私有变量只可使用于同一模块中的过程。

注意 在模块级别中使用 Dim 语句与使用 Private 语句是相同的。不过使用 Private 语句可以更容易的读取和解释代码。

使用 Static 语句

当使用 Static 语句取代 Dim 语句时,所声明的变量在调用时仍保留它原先的值。

使用 Option Explicit 语句

在 Visual Basic 中可以简单地通过一个赋值语句来隐含声明变量。所有隐含声明变量都为 Variant 类型,而 Variant 类型变量比大多数其它类型的变量需要更多的内存资源。如果显示地声明变量为指定的数据类型,则应用程序将更有效。显示声明所有变量减少了命名冲突以及拼写错误的发生率。

如果不想使 Visual Basic 生成隐含声明,可以将 Option Explicit 语句放置于模块中所有的过程之前。这一个语句要求对模块中所有的变量做显示地声明。如果模块包含 Option Explicit 语句,则当 Visual Basic 遇到一个先前未定界的变量或拼写错误,它会发生编译时间的错误。

可以设置 Visual Basic 程序环境中的某个选项,使得自动在所有新的模块中包含 Option Explicit 语句。请参阅应用程序的文档来得知如何更改 Visual Basic 环境选项,请注意这个选项并不会改变已写好的存在的代码。

注意 必须显示地声明固定大小的数组与动态数组。

为自动化声明一个对象变量

当使用一个应用程序去控制另外一个应用程序的对象时,应该设置一个对于其它应用程序的类型库的引用。若设置一个引用,则可以根据它们最常指定的类型来声明对象变量。例如,如果是在 Microsoft Word 中,当对 Microsoft Excel 类型库做一引用设置时,可以在 Microsoft Word 中声明 Worksheet 类型的变量来表示 Microsoft Excel 中的 Worksheet 对象。

如果使用其它的应用程序去控制 Microsoft Access 对象,在多数情况下,可以根据它们最常指定的类型来声明对象变量。也可以使用关键字 New 去自动生成一个对象的新实例。然而,可能要指示它是 Microsoft Access 对象。例如,当在 Microsoft Visual Basic 里面声明一个对象变量去表示 Microsoft Access form 时,必须区别它是 Microsoft Access Form 对象或是 Visual Basic Form 对象。所以在声明变量的语句中必须要包含类型库的名称,如下面示例所示:

Dim frmOrders As New Access.Form

某些应用程序并不能识别特别的 Microsoft Access 对象类型。既使已经在这些应用程序中设置了一个对 Microsoft Access 类型库的引用,必须声明所有 Microsoft Access 对象变量为 Object 类型。不能使用 New 关键字去创建这个对象的新实例。下面的示例显示了,不能识别 Microsoft Access 对象类型的应用程序,如何去声明一个变量用来表示 Microsoft Access Application 对象。然后应用程序创建一个 Application 对象的实例。

Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")

写赋值语句

赋值语句指定一个值或表达式给变量或常数。赋值语句通常会包含一个等号(=)。下面示例,指定 InputBox 函数的返回值给变量 yourName。

Sub Question()
    Dim yourName As String
    yourName = InputBox("What is your name?")
    MsgBox "Your name is " & yourName
End Sub

Let 语句是可选的,而通常为省略。例如,上述的赋值语句可以写成:

Let yourName = InputBox("What is your name?")

Set 语句可被用来指定一个对象给已声明成对象的变量。而 Set 关键字是必备的。下面示例中,Set 语句指定 Sheet1 上的一个范围给对象变量 myCell:

Sub ApplyFormat()
Dim myCell As Range
Set myCell = Worksheets("Sheet1").Range("A1")
    With myCell.Font
        .Bold = True
        .Italic = True
    End With
End Sub

设置属性值的语句也是一个赋值语句。下面的示例,将设置对于活动单元格 Font 对象的 Bold 属性:

ActiveCell.Font.Bold = True

声明常数

通过声明一个常数,可以将有意义的名称赋予一个值。使用 Const 语句去声明一个常数,并且设置它的值;而在常数声明完之后,则不能加以更改或赋予新值。

在声明部分,可以在过程中或者在模块顶部声明常数。模块级别中的常数缺省为私有的。若要声明一个公共模块级别常数,则可以在 Const 语句前加上 Public 这个关键字。也可以利用在 Const 语句前加上 Public 关键字来明确的声明一个私有的常数,使得我们可更容易的去读取并且解释代码。若需更多信息,请参阅 Visual Basic 帮助中的“了解范围与可见性”。

下面的示例,声明了一个 Public 常数 conAge 为 Integer 类型,并且指定它的值为 34。

Public Const conAge As Integer = 34

常数可以声明成下列数据类型中的一种:Boolean、Byte、Integer、Long、Currency、Single、Double、Date、String 或 Variant。因为已经知道常数的值,所以可以指定 Const 语句中的数据类型。关于数据类型的详细信息,请参阅 Visual Basic 帮助中的“数据类型总结”。

可以在一个语句中声明数个常数。为了指定数据类型,必须将每一个常数的数据类型包含进来。在下面的语句中,常数 conAge 和 conWage 被声明为 Integer 类型。

Const conAge As Integer = 34, conWage As Currency = 35000

 source:VBA 帮助文档

Excel VBA变量定义与赋值:从基础语法到实战应用 在编程中,变量是存储数据的基本单元,它作为内存中的命名空间,用于临时保存和操作信息。理解变量的核心原理是掌握任何编程语言的第一步,它直接影响代码的可读性、可维护性和执行效率。在Excel VBA这一强大的办公自动化工具中,变量扮演着至关重要的角色,是实现数据处理、报表生成等复杂任务自动化的技术基石。通过显式声明变量类型、合理规划作用域,开发者可以构建出健壮、高效的宏代码,从而将人力从重复性的数据整理工作中解放出来,显著提升办公与数据分析的效率。本文聚焦于VBA编程中的变量定义与赋值,结合实战案例,系统讲解如 阅读详情

相关推荐

【VBA编程】VBA基础语法(一)

一、VBA中的数据类型 VBA里的数据类型有:字节型(Byte)、整数型(Integer)、长整数型(Long)、单精度浮点型(Single)、双精度浮点型(Double)、货币型(Currency),小数型(Decimal)、字符串型(String)、日期型(Date),布尔型(Boolean)等。 二、VBA中的常量和变量 1、声明变量 一般声明变量: Dim 变量名 As 数据类型 注:也可以使用变量类型声明符来声明变量。如果不指定数据类型,则默认将变量声明为Varian...

靳先森的博客 1万+

公共变量_理解VBA变量声明 进入编程第一步

批量打印代码 声明变量,就是像制造了一个盒子,这个盒子有他的名称,叫做变量名,有他的外观,叫做数据类型,盒子装有东西,叫做变量的值。这个盒子放在哪个位置叫做作用域,比如 Public,Private,Static 。声明变量时,通常使用 Dim 语句。 声明语句可以置于创建过程中以创建过程级变量。 也可以置于声明部分的模块顶部,以创建模块级变量。下面的示例创建变量并指定 String 数据类型。D...

weixin_35068573的博客 4718

【EXCEL】【VBA】处理GI Log获得Surf格式的CONTOUR DATA

TRUE分支: INDEX + MATCH嵌套。遍历Layer summary表。检查Description列。FALSE分支: 返回空值。是否包含当前layer。条件判断: C2不为空。

hmywillstronger的博客 1498

VBA 变量的声明和使用

EXCEL VBA 变量

xyt1231的博客 3635

Excel宏小白必看:5分钟学会用VBA创建msgbox弹窗(WPS2020版)

本文为Excel宏初学者提供了在WPS2020中使用VBA创建msgbox弹窗的详细教程。从开发工具启用到基础代码编写,再到实际应用场景,5分钟即可掌握这一实用功能,帮助提升办公自动化效率。

weixin_30896511的博客 276

宏命令全表解析:从语法变量到实战应用,掌握自动化核心

宏命令是一种将复杂、重复的操作序列封装成单一指令的自动化技术,其核心原理在于通过特定的语法规则,将命令、参数与逻辑控制组合成可执行的脚本。在技术价值层面,宏能显著提升操作效率,减少人工重复劳动,是实现个人及工作流程自动化的重要工具。从应用场景来看,无论是《魔兽世界》中的技能智能施放、MobaXterm的服务器登录与命令批量执行,还是SolidWorks等专业软件中的二次开发与故障排查,宏命令都发挥着关键作用。本文以游戏宏和运维自动化等高频场景为例,深入解析宏命令的构建逻辑与实战技巧,帮助读者从“查表”使用者

weixin_33154775的博客 278

vba public用法_VBA必知必会:“立即”窗口用法详解

用户界面篇 01斯是陋室:"立即"窗口开篇序:都9102年了,VBA还用着那个丑丑的IDE界面——VBE。但对于非专业编程从业人员来讲,这个多年以前设计的东西在今天依然足够强大并满足使用需求。接下来,我会以数篇文章来逐一盘点VBE的功能,并附上一些使用心得。窗口预览主要功能"立即"窗口显示代码中调试语句的信息(平时看到别人代码经常用到的debug.print语句),或者直接在窗口中执行代码并生成信...

weixin_39620151的博客 3194

Excel VBA自动化入门:从宏录制到实战编程,解放重复劳动

在数据处理与办公自动化领域,编程思维正成为提升效率的关键。其核心原理是通过编写指令集,让计算机自动执行重复性任务,从而将人力从繁琐操作中解放出来,聚焦于更高价值的分析与决策。这一技术价值在数据处理、报表生成等场景中尤为突出,能够实现批量处理、智能校验等复杂操作。以Excel VBA为例,它作为内置于Office的编程语言,通过宏录制功能降低了学习门槛,让用户能快速创建自动化脚本。掌握VBA不仅能实现数据汇总、格式批量修改等常见需求,更能通过编写自定义函数和用户窗体,构建交互式工具,是职场人士提升办公自动化能

weixin_30536861的博客 278

VBA03-变量

什么是变量,变量的数据类型,声明变量,Variant变体变量

qq_31532983的博客 642

VBA编程教程(基础二)

VBA基础教程 文章目录VBA基础教程VBA简介VBA环境简单介绍第一个代码过程函数基本语法变量数据类型时间函数字符串Format格式字符串常量运算符算术运算符比较运算符逻辑运算符运算符比较数组输入和输出控制程序流程顺序语句判断语句判断条件循环语句For Each-Next语句Exit语句With语句调试程序Debug调试IDE调试错误处理事件触发工作簿的事件窗体事件OnTime事件窗体按钮控件文本框控件excel里面的窗体使用 VBA简介 VBA即Visual Basic For Appilication

O_MMMM_O的博客 1万+

Excel VBA(01)基础语法

宏和VBA 基本概念 vba 就是一种可以作用于 Excel 的编程语言,可以用来扩展 Excel 功能 宏就是用来实现一定功能的代码集合(sub),简单的重复操作我们可以直接录制宏,让工具为我们自动生成相应的代码,复杂逻辑的处理需要我们手动进行代码的编写 基本操作 ...

stanwuc的博客 3093

Excel VBA语法详解:掌握数据类型、变量与数组的核心技巧

在Excel VBA编程中,理解数据类型、变量和数组是编写高效宏的基础。本文将通过简单易懂的方式,带你掌握这些核心概念,让你的VBA代码更加规范和高效。 ## 一、VBA数据类型:选择合适的"容器" VBA提供了多种数据类型,每种类型都有其特定的存储范围和用途。正确选择数据类型可以提高代码性能并减少内存占用。 常见的数据类型包括: - **Integer**:用于存储-32,768到32,7

gitblog_00156的博客 444

VBA入门1——基础

vba入门笔记

qq_47326711的博客 7781

vba 全局变量_VBA语法基础,语法是语言的基础

VBA的语法很简单易懂,逻辑性强,但很全面,因此涉及的方面也较多,本文及随后的一系列文章将重点介绍VBA语法方面的相关知识。这些文章都是自已在学习VBA过程中的总结归纳笔记。本文只是简要概略的讲解了VBA所涉及的语法知识,以此构建VBA语法框架,更具体详细的介绍将在后面的一系列文章中。我们今天首先来说一下,VBA的数据类型有哪几种?变量,常量,声明变量,对象常量,集合(Collectio...

weixin_39571404的博客 1030

Excel VBA 宏速成指南:有编程基础,看完就能写

摘要:本文介绍了Excel VBA宏语言的快速入门指南。主要内容包括:1)VBA与宏的概念及两种创建方式(录制宏和编写代码);2)VBA与VB的关系;3)环境配置和Hello World示例;4)核心语法(变量、数组、字典、条件判断和循环);5)Excel对象模型(Workbook、Worksheet、Range等)的操作方法。文章通过具体代码示例展示了VBA的基本用法,适合有编程基础的用户快速掌握Excel自动化操作技能。

甘蓝的专栏 62

大话西游2经典单机版V8:一键架设+GM全功能+仙玉自由修改

本文详细介绍大话西游2经典单机版V8的一键架设教程和GM全功能使用指南,包括仙玉自由修改技巧。该版本无需虚拟机,解压即玩,完美还原官服经典玩法,支持离线运行,是老玩家重温经典和新玩家体验游戏的理想选择。

weixin_27303545的博客 1130

Excel VBA 入门到精通(二):变量、数据类型与运算符

掌握 VBA 基础语法,理解变量声明、数据类型选择、运算符使用,为编写高质量代码打下坚实基础。

weitingfu的博客 403

【水文】calico-node 启动失败 Init:CrashLoopBackOff

Defaulted container "calico-node" out of: calico-node, upgrade-ipam (init), install-cni (init), mount-bpffs (init) Error from server (BadRequest): container "calico-node" in pod "calico-node-4j7td" is waiting to start: PodInitializing

大健的日常的博客 1万+

vba 定义类_VBA语法基础,语法是语言的基础

VBA的语法很简单易懂,逻辑性强,但很全面,因此涉及的方面也较多,本文及随后的一系列文章将重点介绍VBA语法方面的相关知识。这些文章都是自已在学习VBA过程中的总结归纳笔记。本文只是简要概略的讲解了VBA所涉及的语法知识,以此构建VBA语法框架,更具体详细的介绍将在后面的一系列文章中。我们今天首先来说一下,VBA的数据类型有哪几种?变量,常量,声明变量,对象常量,集合(Collection)对象,...

weixin_39681621的博客 649

Windows 11下Dify安装部署实战指南

本文详细介绍在Windows 11环境下部署开源LLM应用开发平台Dify的完整流程。涵盖环境准备(WSL 2启用、Docker Desktop安装配置)、源码获取、Docker容器化部署、数据库初始化、服务启动验证等核心步骤。包括环境变量配置、性能优化、安全加固、端口冲突解决、数据库连接故障排查等关键技术要点。为开发者提供从零到一的Dify本地化部署实战指南

weixin_44269410的博客 851

关于RT-Thread中PWM无法正常输出的学习

按照官方的PWM配置,并没有输出PWM,网上有比较多的办法,试了很多,有些还是不能实现输出,这里做个记录。记录自己完成PWM输出的过程,以及修改的地方。 关于STM32CubeMX配置就不多说了,网上有很多。 首先必定是按照流程来,一定一定按照流程来!!! 需要注意的是加上通道数!!!! 这是流程上没有的,也是RTT的一点小BUG吧 配上board.c中添加的代码,我用的是PA2定时2的通道3,需要使用的朋友修改对应定时器和GPIO! void HAL_TIM_Base_MspInit(TIM_Han

weixin_42566346的博客 3550

Excel操作:VBA基础语法

一、常见的数据类型与声明方法 数据类型就是对同一类数据的统称,如整数、日期、字符串等。 VBA里的数据类型有字节型(Byte)、整数型(Integer)、长整数型(Long)、单精度浮点型(Single)、双精度浮点型(Double)、货币型(Currency)、小数型(Decimal)、字符串型(String)、日期型(Date)、布尔型(Boolean)等。详见下表所示: VBA变量声明 1...

fightingoyo的博客 5084

【原创】Ubuntu20.04 安装 Isaac Gym 仿真器

Ubuntu20.04 安装 Isaac Gym

qq_54900679的博客 3086
上一篇: Excel VBA:设置行高与列宽
下一篇: VBA基础语法:数据类型
csdndscs
博客等级 码龄9年 161粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值