VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别

2024-02-15 20:12

本文主要是介绍VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第六节:VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别a9847d26595f2731cc43d477e13639ce.jpeg

【分享成果,随喜正能量】一切痛苦的根源在于我执。我执的因在於:我们沉溺在贪、嗔、痴、慢、疑的泥沼里不能自拔,有时明明知道自己这样去想、这样去做不对,但仍然让自己的心像脱缰的野马一样横冲直撞,纵容自己为所欲为,造身业、造口业、造意业,让自己痛苦不堪,扰乱自心、扰乱众生心。谨记:一念放下,万般自在。。

第六节 VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别

大家好,我们继续讲解VBA的相关知识。这讲的内容是“VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别”。在VBA中A1、R1C1和R[1]C[1]均表示单元格。这在我们录制VBA时是随处可见的,通过这讲的学习,我们要掌握这三种单元格表示方法的意义。

1 以“A1”样式表示单元格

我们在工作表上放置一个运行按钮,并关联上以下的过程代码(A1样式):

Sub mynzA()

Range("D4").Formula = "=B3*10"

End Sub

代码截图:

32d2ddad0bd3588c783ea96c1abdb203.jpeg

代码的解读:

Range("D4").Formula = "=B3*10" 意义就是在单元格“D4”中录入公式“=B3*10”,这里对于单元格的表示用的是“B3”,是一种绝对单元格的表示方式。

我们来看运行的结果:

7ef7f1731f5532190cb933a624a1740c.jpeg

2 以“R1C1”样式表示单元格

我们在工作表上放置一个运行按钮,并关联上以下的过程代码(R1C1样式):

Sub mynzB()

Range("D5").FormulaR1C1 = "=R3C2*10"

End Sub

代码截图:

b3fb6472985d8a34dc4f112ed435746a.jpeg

代码解读:

Range("D5").FormulaR1C1 = "=R3C2*10" 表示在“D5”的单元格中录入公式:"=R3C2*10"

其中R3C2表示的是第三行第二列的单元格即B3单元格,这种表示是单元格的另外一种表示方式。

代码的运行结果:

6ee5f1c5679f842a5098bb985fcd3c10.jpeg

3 以“R[1]C[1]”样式表示单元格

我们在工作表上放置一个运行按钮,并关联上以下的过程代码(R[1]C[1]样式):

Sub mynzC()

Range("D6").FormulaR1C1 = "=R[-3]C[-2]*10"

End Sub

代码截图:

6523975769a5ff158a24535b4882c8f0.jpeg

代码解读:

Range("D6").FormulaR1C1 = "=R[-3]C[-2]*10" 的意思是在"D6"这个单元格中录入公式:"=R[-3]C[-2]*10"。其中R[-3]C[-2]指的是对于"D6"这个单元格行是向上3行,列是向左2列的单元格,仍是B3单元格,的引用。这是一个相对引用。

代码的运行结果:

e1a87c0e34f21a31f68f653b2b96cb54.jpeg

以上是在录制宏的过程中经常会看到的录制结果,大家要认真掌握。

今日内容回向:

1) 单元格的引用样式在录制宏时的表现有哪些?

2) 这些样式中哪个是绝对引用,哪个是相对引用?

3) 对于单元格相对引用来讲,行列的位置是如何规定的?

本讲内容参考程序文件:工作簿01.xlsm

1282c366cf8036d1190d768632fcab7f.jpeg

我20多年的VBA成果全在下面的资料中:


f2f4b0dd3f554d144c62275286b1d1d5.jpeg

e1c4a870ed04141f8f0ef7cf30090146.jpeg

这篇关于VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712421

相关文章

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro