分享

VBA系列-CurrentRegion属性

 L罗乐 2018-06-15
 CurrentRegion 属性可以返回Range对象,该对象代表当前的区域,当前区域是一个边缘为任意空行和空列组合成的范围。
1
CurrentRegion简介

使用CurrentRegion返回当前活动区域,相当于在Excel工作表中选择菜单“编辑——定位”命令,在弹出的“定位”对话框中单击“定位条件”按钮,然后在“定位条件”对话框中选中“当前区域”选项按钮,或者相当于使用Ctrl Shift *组合键。

2
短语练习1

1Sub currentRegion练习1()
2Sheets('sheet1').Range('A1').CurrentRegion.Select        
3End Sub
选中sheet1以A1为活动单元格,向周围拓展至空白行列处,工作表当前区域活动区域,活动单元格可以是活动区域中的任意单元格。

短语练习2

1Sub CurrentRegion()
2   Sheets('sheet1').Range('A1'). CurrentRegion .Copy Sheets.Add.Range('A1')
3End Sub

上面的代码可以复制当前区域到新建工作表中

短语练习3

1Sub CurrentRegion练习3()
2    Dim Crange As Range
3    Set Crange = Sheets('sheet1').Range('A1'). CurrentRegion
4    Crange.Sort key1:=Crange.Cells(2, 5),_
            order1:=xlDescending, header:=xlYes

5End Sub

上面的代码对活动数据区域第2行第5列按降序排序

3

任务:如上图所示按照接听量不同赋予不同的奖金系数,奖金=接听量*系数*单通价格,用VBA计算人员应得奖金。

代码如下:

综合案例练习
1Dim lLastrow As Long
2Sub bonus()
3Dim rng As Range
4lLastrow = Range('A1').CurrentRegion.Rows.Count
5Range('G3:H' & lLastrow).ClearContents
6Call getExtraNum
7Call CalculateExtra
8Set rng = Range('G3:h' & lLastrow)
9End Sub
10'获取奖金系数
11
Sub getExtraNum()
12  
 Dim i As Long, ExtraNum As Single
13  
 For i = 3 To lLastrow
14  
 ExtraNum = Range('e' & i).Value
15    
Range('G' & i).Value = GetExtra(ExtraNum)
16  
 Next i
17
End Sub
18
'计算奖金
19Sub CalculateExtra()
20    Range('H3:H' & lLastrow).FormulaR1C1 = '=rc5*rc6*rc7'
21End Sub
22'系数判断
23
Function GetExtra(num As Single) As Single
24
Select Case num
25    
Case Is < 5500
26    
  GetExtra = 1
27  
 Case 5500 To 6000
28      
GetExtra = 1.05
29  
 Case 6000 To 6500
30      
GetExtra = 1.1
31    
Case Is > 6500
32    
  GetExtra = 1.12
33    
Case Else
34      
GetExtra = 0
35
End Select
36
End Function



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多