UsedRange属性示例(VBA)
[日期:2008-11-13] | 来源: 作者: | [字体:大 中 小] |
现在,我们举几个例子,进一步说明UsedRange属性的用法。
[示例一]下面的程序在活动工作表已使用单元格区域中,当该区域不包含任何公式时,清除该区域不能打印的字符。其中,
ActiveSheet.UsedRange 代表当前工作表中已使用单元格区域组成的Range对象。(By Chip Pearson)
Sub CleanUp()
Dim TheCell As Range
For Each TheCell In ActiveSheet.UsedRange
With TheCell
If .HasFormula = False Then
.Value = Application.WorksheetFunction.Clean(.Value)
End If
End With
Next TheCell
End Sub
[示例二]下面的程序将当前工作表中已用单元格区域或所选单元格中第一个字符删除,其中,ActiveSheet.UsedRange.Address代表当前工作表
中已用单元格区域的地址。
Public Sub Delete_First_Character(Optional ByRef objRange As Range = Nothing)
Dim objCell As Range
On Error Resume Next
If (objRange Is Nothing) Then
Set objRange = Application.InputBox(Prompt:="请选择单元格区域", _
Title:="删除第一个字符", _
Type:=8, _
Default:=ActiveSheet.UsedRange.Address) '设置缺省选区为已用区域
End If
Err.Clear
Set objRange = objRange.SpecialCells(xlCellTypeConstants)
If (Err.Number <> 0&) Or (objRange Is Nothing) Then
MsgBox "在指定的单元格区域中没有符合要求的单元格.", _
vbExclamation Or vbOKOnly, _
ActiveWorkbook.Name
Exit Sub
End If
On Error GoTo Exit_Delete_First_Character
Application.ScreenUpdating = False
For Each objCell In objRange
objCell = Mid$(objCell, 2)
Next objCell
Exit_Delete_First_Character:
On Error Resume Next
Application.ScreenUpdating = True
End Sub
[示例三] 在本示例中,当您在工作表的E列中的单元格中输入“finish”后,点击右侧按钮,将会对此行用指定的背景色进行标识
本示例中按钮所附加的代码如下,其中,UsedRange.Rows.Count表示当前工作表中已使用区域的行数。
Private Sub CommandButton1_Click()
Dim r As Long
For r = UsedRange.Rows.Count To 1 Step -1
If Range("E" & r) = "finish" Then _
Range("A:G").Rows(r).Interior.ColorIndex = 10
Next r
For r = UsedRange.Rows.Count To 1 Step -1
If Range("E" & r) = "" Then _
Range("A:G").Rows(r).Interior.ColorIndex = 2
Next r
End Sub
[提示]您可以将此代码放置在工作表变化事件中,这样,当工作表变化时,符合条件的相应行会自动标记背景色。
[示例四] 本示例演示了删除行操作,即在活动工作表已使用单元格区域中,若某单元格中包含有“AND”(如为ANDXXX或XXXANDXX或XXXAND等,
不区分大小写),则删除该单元格所在行。ActiveSheet.UsedRange.Find(what)表示在当前工作表所有已使用单元格区域中查找含有变量what中
的内容的单元格,程序代码如下:(by Patrick Molloy)
Sub Find_AND()
Dim rng As Range
Dim what As String
what = "AND"
Do
Set rng = ActiveSheet.UsedRange.Find(what)
If rng Is Nothing Then
Exit Do
Else
Rows(rng.Row).Delete
End If
Loop
End Sub
[提示]您可以更改程序中所查找的字符,从而实现您所想要的目的。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。