精华内容
下载资源
问答
  • VBA变量或数组引用不连续单元格

    千次阅读 2020-03-15 15:53:36
    一、对象变量引用单元格本身 假如有三个不连续的单元格:A1,B2,B5 则用vba方法选中这三个不连续单元格的代码如下: 1, range("A1,B2,B5").select 2,Union([A1], [B2], [B5]).selcet 以上均可使用range对象变量...

    在工作中,常常会遇到引用不连续单元格的情况,经过摸索总结,有以下方法:

    一、对象变量引用单元格本身

    假如有三个不连续的单元格:A1,B2,B5

    则用vba方法选中这三个不连续单元格的代码如下:

    1, range("A1,B2,B5").select

    2,Union([A1], [B2], [B5]).selcet

    以上均可使用range对象变量进行直接引用.

    dim c as range

    set c=range("A1,B2,B5")  或者 set c=Union([A1], [B2], [B5])

    二、数组元素引用单元格数据

    为了便于循环引用,可将不连续单元格数据使用array()函数组成自定义数组,然后循环引用.

    比如上述三个单元格,

    dim brr

    brr = Array([a1], [b2], [b5])

    当然,考虑到通用性问题,可以将array中的元素使用变量代替

    dim brr

    dim a,b,c

    set a=[a1]:set b=[b2]:set c=[b5]

    brr= Array(a,b,c)

    组成自定义数组后,便可使用brr(i)的方式进行相应单元格数据的引用.

    三、不连续单元格一次性赋值

    上面一、二我们得到了不连续单元格的对象引用以及数组方式的数据引用.为此将二者结合起来,可以进行不连续单元格的批量赋值.

    采用循环,一对一进行赋值.

     

    dim rng as range

    i=0

    for each rng in c

    rng=brr(i)

    i=i+1

    next

     

    展开全文
  • Excel VBA单元格对象

    2020-06-18 15:08:38
    注意:①列标不区分大小写 ②VBA中字符用加双引号"",数字和变量无需加双引号""。所以,Cells(1,“A”)方式很好理解了。 多种方法引用单元格区域 Range(“A1:B2”)方式——表示A1到B2的单元格区域,包括

    多种方法引用单元格

    Range(“A1”)方式——表示A1单元格
    Cells(1,1)方式——表示A1单元格(cells属性返回单元格区域中指定行和列相交的单元格)
    Cells(1,“A”)方式——表示A1单元格Cells(2,1)方式——表示A2单元格
    [A1]方式——表示A1单元格

    注意:①列标不区分大小写 ②VBA中字符用加双引号"",数字和变量无需加双引号""。所以,Cells(1,“A”)方式很好理解了。

    多种方法引用单元格区域

    Range(“A1:B2”)方式——表示A1到B2的单元格区域,包括4个单元格
    [A1:B2]方式——表示A1到B2的单元格区域,包括4个单元格
    以下三种方式等同:
    Range(Cells(1, 1), Cells(10, 5))
    Range(“A1”, “E10”)
    Range(Range(“A1”), Range(“E10”))
    均表示工作表中A1:E10单元格区域

    优缺点讨论:Cells(1,1)缺点是形式不支持引用区域,不支持成员列表;[A1]形式不支持循环,不支持成员列表;Range(“A1”)形式支持循环,支持引用区域,支持自动列出属性,方法等成员。

    引用整行或者整列

    Range(3:3)——表示引用第三行
    Range(2:5)——表示引用第二到第五行
    Range(“D:D”)——表示引用D列(D不区分大小写)
    Rows(3)——表示引用第三行
    Rows(“3”)——表示引用第三行
    Rows(“3:5”)——表示引用第三到第五行
    Columns(3)——表示引用第三列
    Columns(“C”)——表示引用第三列
    Columns(“C:D”)——表示引用C到D列

    属性

    offset
    作用:返回Range对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。
    语法
    Range.Offset(RowOffset, ColumnOffset)

    RowOffset:区域偏移的行数(正数、负数或 0(零))。正数表示向下偏移,负数表示向上偏移。默认值是 0。
    ColumnOffset:区域偏移的列数(正数、负数或 0(零))。正数表示向右偏移,负数表示向左偏移。默认值是 0。

    Resize
    语法
    Range.Resize(RowSize, ColumnSize)

    RowSize:新区域中的行数。如果省略该参数,则该区域中的行数保持不变。
    ColumnSize:新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

    Range(“a1”).Resizt(3, 2).Select
    在这里插入图片描述
    End
    作用:返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+
    ↑、End+ ↓、End+ ←或 End+ →。
    语法
    Range.End(Direction)
    Direction:所要移至的方向。(包括以下四种情况)
    xlDown 向下
    xlToLeft 向左
    xlToRight 向右
    xlUp 向上

    我们一般用end属性获取某列的最后一个非空单元格的行号
    Cells(Rows.Count, “A”).End(xlUp).row

    Address
    作用:返回单元格地址。
    MsgBox Range(“a1”).Address
    在这里插入图片描述

    Value
    作用:表示单元格里面的内容,默认属性,可省略

    常用方法

    Select
    相当于我们点住鼠标左键圈选一个单元格区域
    Range(“a1:a10”).Select

    copy
    复制内容到指定目的地的作用。
    Range(“a1”).Copy Range(“b1”) ’ 将A1单元格内容复制到B1
    Worksheets(1).Range(“a1”).Copy Worksheets(2).Range(“b1”)'将表1中A1单元格内容复制到表2单元格B1中

    Union
    将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。
    Union(Worksheets(1).Range(“A1:D4”), Worksheets(1).Range(“E5:H8”)).Select
    在这里插入图片描述
    union方法一般结合find方法,在依次找到特定的单元格区域之后,联合选择然后做统一的操作。

    Clear
    清除单元格的内容
    Sub test()
    Range(“a:a”).Clear '清除A列单元格,包括数据内容和格式
    Range(“a:a”).ClearContents '如果不想清楚单元格颜色等格式,只清除A列单元格内容用ClearContentsRange(“a:a”).ClearComments '清除批注
    Range(“a:a”).ClearFormats’清除格式
    End Sub

    SpecialCells
    在Excel中使用定位对话框可以选中工作表中特定的单元格区域,而在VBA中则使用SpecialCells方法。下面这个例子实现选中含有公式的单元格。

    Sub test()
    Dim rng As Range
    Set rng = Sheet1.Range(“a1:x100”).SpecialCells(xlCellTypeFormulas)'选中A1:X100单元格区域中包含公式的单元格
    rng.Select
    End Sub
    在这里插入图片描述
    除了可以选中包含公式的单元格,我们还可以选中含有注释的单元格区域、含有相同格式的单元格区域等等。

    上述代码中xlCellTypeFormulas替换为下表中值即可
    在这里插入图片描述
    我们如果要仅复制筛选后的数据,就可以用
    SpecialCells(xlCellTypeVisible).copy

    如果判断A1:B10单元格区域若存在空格,则隐藏所在行[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden =True

    整理空行工具
    Sub s()
    row1 = InputBox(“请输入需要整理空行的列(英文)”, “提示信息”)
    Range(row1 & “:” & row1).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
    End Sub

    展开全文
  • VBA引用工作表函数

    2018-02-08 08:16:00
    在Excel里有很多函数使用起来很方便,譬如:sum、average、min、max。 但是工作表函数是不能在宏代码里直接使用的,...1. 让一个变量得到单元格A1到B5的总和(变量设为X) X=SUM(RANGE("A1:B5"))的写法明显是行不通...

    在Excel里有很多函数使用起来很方便,譬如:sum、average、min、max。

    但是工作表函数是不能在宏代码里直接使用的,它们和vba语言中的函数是不一样的;与之相对应,Vba中的函数例如val,mid在工作表里也不能通用。

    所以在vba语言里调用工作表函数,例如:

    1. 让一个变量得到单元格A1到B5的总和(变量设为X) X=SUM(RANGE("A1:B5"))的写法明显是行不通的。

    2. 正确写法是:

    1 Sub 引用工作表函数()
    2 Dim x%
    3 x = Application.WorksheetFunction.Sum(Range("A1:B5"))
    4 End Sub

    也就是说必须通过 Application 对象的 Worksheetfunction 属性来间接调用工作表函数!

    以下三种方法都对:

    1 '借用工作表函数
    2 Sub 运用工作表函数()
    3 MsgBox Application.WorksheetFunction.CountIf(range("a1:a10"), "钢笔")
    4 MsgBox WorksheetFunction.CountIf(range("a1:a10"), "钢笔")
    5 MsgBox Application.CountIf(range("a1:a10"), "钢笔")
    6 End Sub

     同时,也可以采用下面的方式:

    1 Sub 带工作表函数的计算()
    2 Dim i As Integer
    3 For i = 1 To 10
    4     Sheet1.Cells(i, 4) = "=sum(a" & i & ":b" & i & ")"
    5 Next i
    6 End Sub

     

    1 Sub 公式带引号的计算()
    2 Cells(12, 1) = "=COUNTIF(A1:A10,"">9"")"
    3 Cells(12, 2) = "=sum(INDIRECT(""a1:a10""))"
    4 End Sub

     

    转载于:https://www.cnblogs.com/gongyanxu/p/8429966.html

    展开全文
  • 详细的学习VBA中对单元格对象的引用方式、属性、方法,是学习VBA必须要打好的基础。基础概念一定要牢固。这节课我们先讲解单元格对象的一些属性、方法。offset属性作用:返回Range对象,它代表位于指定单元格区域的...

    详细的学习VBA中对单元格对象的引用方式、属性、方法,是学习VBA必须要打好的基础。基础概念一定要牢固。

    这节课我们先讲解单元格对象的一些属性、方法。

    offset属性

    作用:返回Range对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。

    语法

    表达式.Offset(RowOffset, ColumnOffset)

    表达式 一个代表 Range 对象的变量。

    RowOffset 区域偏移的行数(正数、负数或 0(零))。正数表示向下偏移,负数表示向上偏移。默认值是 0。

    ColumnOffset 区域偏移的列数(正数、负数或 0(零))。正数表示向右偏移,负数表示向左偏移。默认值是 0。

    Range("a1").Offset(3, 2).Select 'select方法,选中偏移后得到的单元格

    3333e33aac2e88734c14e1ec387bdf6b.png

    Resize属性

    作用:调整指定区域的大小。返回 Range 对象,该对象代表调整后的区域。

    语法

    表达式.Resize(RowSize, ColumnSize)

    表达式 一个返回 Range 对象的表达式。

    RowSize 新区域中的行数。如果省略该参数,则该区域中的行数保持不变。

    ColumnSize 新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

    Range("a1").Resizt(3, 2).Select

    结果如下:

    5028e9fba90c1c536131da6879c28e58.png

    End属性

    作用:返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ ↑、End+ ↓、End+ ←或 End+ →。

    语法

    表达式.End(Direction)

    表达式 一个代表 Range 对象的变量。

    Direction 所要移至的方向。(包括以下四种情况)

    xlDown 向下

    xlToLeft 向左

    xlToRight 向右

    xlUp 向上

    Range("a1").End(xlDown).Select '相当于在A1单元格按下 END+↓

    Range("a100").End(xlUp).Select '相当于在A100单元格按下 END+↑

    以上两种方式均可以得到以下结果

    b8d8d819c661462c5b2254499817a64e.png

    我们一般用end属性获取某列的最后一个非空单元格的行号

    Cells(Rows.Count, "A").End(xlUp).row

    Address属性

    作用:返回单元格地址。

    Sub t()

    MsgBox Range("a1").Address

    End Sub

    程序运行后结果如下:

    5c22ef7c37c9332e9706a484b9799623.png

    Value属性

    作用:表示单元格里面的内容,默认属性,可省略

    Range("A1").Value = "ab" '在A1单元格输入ab

    展开全文
  • 学习Excel技术,关注微信公众号:excelperfect在前面的几篇文章中,我们自定义的函数使用定义为Range的参数来从Excel工作表中获取数据,例如:... _Col_Num As Long)如果在公式中使用单元格区域作为参数来调用该...
  • 一、基础数据类型变量引用变量(对象变量)让我们首先复习一下EHVBA中级班培训第一课的内容:神马是变量?DimaasInteger‘a就是一个整数型的变量DimrngasRange‘rng就是一个单元格对象的变量还记得很清楚当时老师...
  • 单元格进行处理的时候往往会用cells(row,col)进行引用,如cells(1,3)表示C1单元格(1行3列),当用户用字母(列名)指定列的时候,我们首先将字母转换成数字列号,如C列用Asc(UCase("c")) - 64转换为3,然后再进行...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧1 单元格引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 12 1-6 使用Union方法 12 1-7 使用UsedRange属性 12 1-8 使用CurrentRegion...
  • 1) 如何引用单元格和区域 2) 如何处理单元格和区域 3) 单元格和区域的定位 4) 单元格和区域的保护与锁定 第四节 图表的操作 1) 新建及类型 2) 设置图表的数据 3) 图表格式设置 4) 散点图增加系列和文字 5)...
  • Excel_VBA教程

    2014-09-22 11:36:34
    一、VBA语言基础 1 第一节 标识符 1 第二节 运算符 1 第三节 数据类型 1 第四节 变量与常量 1 第五节 数组 2 第六节 注释和赋值语句 2 第七节 书写规范 2 第八节 判断语句 2 第九节 循环语句 3 第十节 其他类语句和...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧1 单元格引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 13 1-6 使用Union方法 14 1-7 使用UsedRange属性 14 1-8 使用CurrentRegion...
  • Excel+VBA+之快速上手

    2012-02-14 19:39:00
    1) 如何引用单元格和区域 2) 如何处理单元格和区域 3) 单元格和区域的定位 4)单元格和区域的保护与锁定 第四节 图表的操作 1) 新建及类型 2) 设置图表的数据 3) 图表格式设置 4) 散点图增加系列和文字 5) ...
  • 04065引用不连续单元格区域集合内的各个连续的单元格区域 04066引用工作簿窗口范围内所有的单元格 04067引用设定了允许滚动区域的单元格区域 04068引用指定了左上角和右下角的单元格区域(之一) 04069引用指定了...
  • EXCEL VBA应用开发与实例精讲完整版

    热门讨论 2012-04-16 14:17:15
    3.1 单元格引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4章 Excel对象 4.1 VBA常用对象 4.2 Application对象 4.3 工作簿——Workbooks集合...
  • EXCEL VBA应用开发与实例精讲

    热门讨论 2009-05-06 15:34:29
    3.1 单元格引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4章 Excel对象 4.1 VBA常用对象 4.2 Application对象 4.3 工作簿——Workbooks集合和Workbook...
  • 1) 如何引用单元格和区域 2) 如何处理单元格和区域 3) 单元格和区域的定位 4)单元格和区域的保护与锁定 第四节 图表的操作 1) 新建及类型 2) 设置图表的数据 3) 图表格式设置 4) 散点图增加系列和文字 5) ...
  • Excel VBA程序设计.doc

    2009-07-06 22:16:12
    方法2:尽量减少使用对象引用,尤其在循环中 28 1.使用With语句。 28 2.使用对象变量。 28 3.在循环中要尽量减少对象的访问。 28 方法3:减少对象的激活和选择 28 方法4:关闭屏幕更新 29 第七课 如何在Excel里...
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    方法2:尽量减少使用对象引用,尤其在循环中 28 1.使用With语句。 28 2.使用对象变量。 28 3.在循环中要尽量减少对象的访问。 28 方法3:减少对象的激活和选择 28 方法4:关闭屏幕更新 29 第七课 如何在Excel里...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    一、VBA语言基础 1 第一节 标识符 1 第二节 运算符 1 第三节 数据类型 1 第四节 变量与常量 1 第五节 数组 2 第六节 注释和赋值语句 2 第七节 书写规范 2 第八节 判断语句 2 第九节 循环语句 3 第十节 其他类语句和...
  • 录制相对引用的宏:把下图A列的日期都做标注--操作:录制宏--点击使用相对引用--将首个日期为星期一改填充色为蓝色,再选中7个后的单元格---结束宏录制。编写for循环:for和next成对出现,for后面接着设置新的变量及...
  • EXCEL VBA应用开发与实例精讲1/4

    热门讨论 2009-05-03 23:30:38
    3.1 单元格引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4章 Excel对象 4.1 VBA常用对象 4.2 Application对象 4.3 工作簿——Workbooks集合和Workbook...
  • EXCEL VBA应用开发与实例精讲4/4

    热门讨论 2009-05-06 15:38:12
    3.1 单元格引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4章 Excel对象 4.1 VBA常用对象 4.2 Application对象 4.3 工作簿——Workbooks集合和Workbook...
  • 3.1 单元格引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4章 Excel对象 4.1 VBA常用对象 4.2 Application对象 4.3 工作簿——Workbooks集合和Workbook...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     3.3 单元格单元格区域引用  3.3.1 为什么使用不是相对的引用  3.3.2 R1C1表示法  3.3.3 引用其他的工作表或工作簿  3.4 使用名称  3.4.1 命名单元格单元格区域  3.4.2 将名称应用于现有的引用  3.4.3 ...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     3.3 单元格单元格区域引用  3.3.1 为什么使用不是相对的引用  3.3.2 R1C1表示法  3.3.3 引用其他的工作表或工作簿  3.4 使用名称  3.4.1 命名单元格单元格区域  3.4.2 将名称应用于现有的引用  3.4.3 ...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    变量与常量............................................................................................................................1 第五节 数组........................................................
  • 方法2:尽量减少使用对象引用,尤其在循环中 19 1.使用With语句。 19 2.使用对象变量。 20 3.在循环中要尽量减少对象的访问。 20 方法3:减少对象的激活和选择 20 方法4:关闭屏幕更新 20 第七课 如何在Excel里...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    第四节变量与常量............................................................................................................................1 第五节数组...................................................
  • 自动生成VBA窗体菜单

    2010-08-16 15:23:46
    自动生成VBA窗体菜单 '*************************** '* 菜单类 * '*************************** Option Explicit Private WithEvents MenuBar_MenuItem As MSForms.Label '菜单项 Private WithEvents WorkForm As...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

vba单元格引用变量