excel的vba引用单元格的值

转一篇我自己写的头条文章,可以点击我的头像查看更多的vba文章

使用VBA来整理表格,甚至批量自动导出报表,其实就是模拟了人的行为。在整理表格的时候,我们常常需要选定某个区域,做复制、剪切或者粘贴的操作。

因此,如何使用VBA来模拟这样的行为呢,这就涉及到range的用法了。另外为了更好的选择我们需要的单元格,本篇还会涉及到Cells、offset、resize、CurrentRegion、UsedRange等等的用法小记。这边我们将会根据一个个需求来学习VBA。

需求1:选择B2单元格

Sub main()
Range(“B2”)

.Select

End Sub

B2单元格是第2行,第2列,因此我们也可以使用Cells来改写

Sub main()
Cells(2, 2).Select
End Sub

需求2:选择B2单元格,要求使用变量

我们写VBA的时候,为了面对比较多变的情况,单元格的位置肯定有的时候是不固定的,需要使用到变量。因此这边我们可以这样改写。

Sub main()
Dim num As Integer
Let num = 2
Range(“B” & num)

.Select

End Sub

range的接受的参数是一个字符串,因此只要用连接符 & 配置成正确的字符串格式,就不会报错了。

如果使用Cells,Cells中含变量是更加方便的,一般我们循环的时候都是用Cells来循环的。

Sub main()
Dim num As Integer
Let num = 2 Cells(num, num).Select
End Sub

需求3:选择A1:B5单元格区域

Sub main()
Range(“A1:B5”).Select
End Sub

这边也是这样,只要给range一个正确的字符串格式的参数就可以了。

还可以使用Range和Cells搭配使用。

Sub main()
Range(Cells(1, 1), Cells(5, 2)).Select
End Sub

注意Cells的参数是这样的:Cells(行的数字,列的数字)

或者Range和Range之间也是可以混合使用的。

Sub main()
Range(Range(“A1”), Range(“B5”)).Select
End Sub

需求4:选择选择A1:B5单元格区域,要求使用变量

Sub main()
Dim n1 As Integer
Dim n2 As Integer
Let n1 = 1
Let n2 = 5
Range(“A” & n1 & “:B” & n2).Select
End Sub

需求5:选择第一列最后一个非空的单元格

Sub main()
Range(“A65536”).End(xlUp).Select
End Sub

需求6:选择第二行最后一个非空的单元格

这个必须得使用Cells定位。我们可以这么做

Sub main()
Cells(2, Columns.Count).End(xlToLeft).Select
End Sub

Columns.Count代码最后一列,同理Rows.Count代表最后一行,因此需求5也可以用Cells改写,这里就不赘述了。

需求7:选择A列最后一个空单元格

Sub main()
Range(“A65536”).End(xlUp).Offset(1,0).Select
End Sub

这个比较有用,因为我们每次汇总的时候,都要复制粘贴,为了保持表格的连续性。都需要定位到最后一个空单元格。

需求8:选择第1行最后一个空单元格

Sub main()
Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1).Select
End Sub

这边就涉及到offset的用法了,offset的用法如下例:

offset(|A| , |B|) : 以选择单元格为起点,向下挪移A个单元格,向右挪移B个单元格。

offset(-|A| , -|B|) : 以选择单元格为起点,向上挪移A个单元格,想左挪移B个单元格。

需求:9:不使用CurrentRegion、UsedRange,选择整个区域

这个需求我们以后常常会用,复制所有区域的数据到另一个sheet或者其他工作簿中。如果不使用CurrentRegion或UsedRange,我的思路是,先定位一个起始单元格比如A1,如果不需要表头可以定位A2,然后找到A2单元格所处的行的最后一个非空单元格,然后在顺势往下找到该列所处的最后一个非空单元格,选中。就是我们要的整个区域了。

Sub main()
Range(Range(“A1”), Cells(1, Columns.Count). _ End(xlToLeft). _ End(xlDown)).Select
End Sub

这边为了美观,进行了适当的折行,折行需要添加一个下划线_作为占位符,然后就可以换行了。切记下划线与前面的内容中间需要有空格。

需求10:使用CurrentRegion、UsedRange

Sub main()
Range(“A1”).CurrentRegion.Select
End Sub

使用CurrentRegion可以轻松选择所有区域。但是如果是不连续的区域,这边的选择会显得有些错误。如下图

因此我们可以使用UsedRange选择所有被使用的单元格

Sub main()
ActiveSheet.UsedRange.Select
End Sub

UsedRange需要加上是在哪个Sheet中,无法默认是ActiveSheet。因此我们加上sheet名称。

原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/10202.html

(0)
上一篇 2023-05-04 下午2:43
下一篇 2023-05-04 下午2:51

相关推荐

  • 会计工作岗位,会计岗位好提升吗知乎

    说句实话,会计岗位现在提升难度很大,因为现在无论是企业对会计的要求,还是时代发展的需求都很高。 一、会计的进入门槛不高,处在低端的人员太多 传统会计主要是负责记账、算账、报账,会计…

    培训问答 2022-10-22
  • 浙江艺术生复读学校

    随着各省市的高考录取分数线公布后,有些音乐艺考生可能会因成绩不理想,而产生复读的想法。 那么,杭州的复读生是否有必要复读呢,如果是因为文化课分数没考上,专业课成绩又很好,那不去复读…

    培训问答 2022-05-06
  • 影视后期培训,影视后期培训要学哪些内容

    想要知道影视后期培训要学那些内容,就先要明白什么是影视后期 鬼谷云课堂影视后期专业资深课程顾问来为你答疑: 影视后期制作顾名思义,从字面上可以理解通过后期及时来进行影视制作,具体流…

    培训问答 2022-04-19
  • 零基础学游戏原画是个坑吗

    第一就是游戏逻辑,也就是与平台无关的游戏逻辑的开发。 第二部分是游戏引擎,大部分会用到一些引擎的工作流、一些各种系统封装好的高层的API。 第三部分是weapp,小游戏的框架是参考…

    培训问答 2022-10-20
  • 为什么学少儿编程,为什么学少儿编程比较好

    说起少儿编程,相信很多家长并不陌生。近5年来,少儿编程在国内崭露头角,各种少儿编程课层出不穷,少儿编程正以一种强势的姿态呈现在我们面前。 国内少儿编程行业的迅速发展,一方面离不开国…

    培训问答 2023-03-10
  • 高洪波简介,高洪波再次当国足教练

    提到高洪波这个人,我想大多数球迷对他的印象还是不错的,无论是作为球员,俱乐部主教练还是国家队主教练,他从来都是尽心尽力,全身心的投入到工作中。不过每个人有每个人自己的看法,也有一部…

    培训问答 2022-11-11
  • 英国威尔士大学和班戈大学

    班戈大学 1.院校概况 班戈大学坐落于威尔士北部,沿海城市班戈的中心。 它是一所1884年成立的综合性科研大学,已经有135年的历史。 在英国研究卓越框架(REF2014)中,班戈…

    培训问答 2023-06-02
  • 家庭教育指导师前景如何(家庭教育指导师题库及答案2021)

    最近一股家庭教育的风刮起来,引得好多人想要考这个证书。 说实话,家庭教育指导师的话,属于新兴行业,未来前景也许会很好的。毕竟看一个行业有没有前景,首先看政策,其次看需求。有政策支持…

    培训问答 2023-03-07
  • 刮痧有什么好处与功效

    刮痧其实是一种治疗手段,利用光滑的硬武器具在患者的背部进行刮拭的操作,动作从上到下由内到外,最终会让局部皮肤充血并发红,甚至会使局部皮肤有紫红色的斑点,看起来十分的吓人,但是不得不…

    培训问答 2022-11-24
  • 深圳夜校,深圳为什么叫深圳

    深圳,简称“深”,别称鹏城,是广东省副省级市、计划单列市、超大城市,国务院批复确定的中国经济特区、全国性经济中心城市和国际化城市。截至2018年末,全市下辖9个区,总面积1997….

    培训问答 2022-10-15