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

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2