ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【转载】EXCEL VBA-区域选择

2021-11-13 16:04:26  阅读:240  来源: 互联网

标签:VBA SpecialCells EXCEL 单元格 rng CurrentRegion Range 区域 转载


 

1- 区域命名

ThisWorkbook.Names.Item("foo").RefersTo
 =Tabelle1!$A$1:$B$1
ThisWorkbook.Names.Item("foo").RefersToRange.Address
 $A$1:$B$1

 

2- 一个有趣的case

Sub 按钮1_Click()
    For j = 1 To 1000
        Cells(j, 1) = j
        
        For i = 1 To 10000
            DoEvents
        Next i
        
    Next j
End Sub

 

3- 行号列号的几种抓取方式

Workbooks(1).Worksheets.Count
UsedRange.Rows.Count; //使用行数
UsedRange.Columns.Count; //使用列数

 

4- Range

4-1 定位单元格

Range(“A1”)
Cells(1,1)
Cells(1,”A”)

 

4-2 边缘区域的定位

Range(“A1”).Offset(1,1)

End(xlDown)
End(xlToLeft)
End(xlToRight)

EntireRow属性和EntireColumn属性可以获取单元格或单元格区域所在的整行或整列。一个典型的应用就是隐藏满足条件的单元格所在的行或列。此外,通过设置行或列的背景色,可以达到高亮显示所在单元格行或列的效果。

 

4-3 Resize

Resize能基于选中单元格调整range区域大小,选中current range中除标题行以外的单元格区域

Set rng=Range('B1').CurrentRegion
rng.Offset(1,0).Resize(rng.Rows.Count-1, rng.Columns.Count).Select

 

4-4 常用Region

CurrentRegion属性和UsedRange属性能够让我们“立刻获得”大片单元格区域。

CurrentRegion属性相当于在工作表中按下组合键,快速选择由空行和空列围成的一片单元格区域。

选取效果类似 - Ctrl + Shift + *

Range('A1').CurrentRegion.Select
Range('C3').CurrentRegion.Select
ActiveCell.CurrentRegion.Select

Dim rng As Range
Set rng = Range('B2').CurrentRegion
MsgBox '当前单元格区域共有'&rng.Rows.Count&'行,'&rng.Columns.Count&'列'

UsedRange属性用于获取工作表中由所使用的单元格围成的方形单元格区域,无论该区域内是否有空行或空列,即使在单元格中应用了格式但还没有输入内容,该单元格也会被UsedRange属性获取,从而包含到已使用的单元格区域中。

 

4-5 SpecialCells

VBA提供了SpecialCells方法,通过指定类型参数,快速定位到特定的单元格,例如参数指定为xlCellTypeLastCell则会定位到工作表中最后使用的单元格。

类似- Ctrl + G 

Selection.SpecialCells(clCellTypeBlank).Select
Range.SpecialCells(Type,Value)

 

Dim rng as Range
Set rng = Selection.SpecialCells(clCellTypeLastCell)
rng.Address(RowAbsolute:=False,ColumnAbsolute:=False)

 

4-6 区域包含关系

使用Intersect方法。Union方法和Intersect方法还可以用于判断一个区域是否包含另一个区域,在此基础上,可以进一步编写代码保护单元格,防止用户修改特定的单元格区域。

 

rngIntersect = Intersect(Range('A1:C5'),Range('B3:E8'))

 

Range('A1:B2').Font.ColorIndex=3
Range('E8:F9').Font.ColorIndex=3

Union(Range('A1:B2'),Rande('E8:F9')).Font.ColorIndex=3

 

4-7 非连续区域的选择

如果我们选择的单元格或者单元格区域不连续,而是分散在工作表的不同地方,那么可以使用Areas集合来获取这些区域。通过Areas集合,可以方便地获取一整块满足条件的区域。若配合循环语句使用,会使代码简洁而强大。
Dim rng As Range
For each rng InCells.SpecialCells(xlCellTypeConstants,1).Areas
  rng.Interior.Color = RGB(255,0,0)
Next rng

 

标签:VBA,SpecialCells,EXCEL,单元格,rng,CurrentRegion,Range,区域,转载
来源: https://www.cnblogs.com/reakal/p/15548691.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有