国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Excel 2007 Range對象開發(fā)指南-上

Excel 2007 Range對象開發(fā)指南-上

2009年2月6日

這個是MSDN上的文章,介紹了Excel中最常用的Range對象的使用方法。也適用于Excel2007之前的版本。

概述

我們在Microsoft Office Excel2007中所做的大部分工作都是和單元格相關。同樣,我們對Excel對象所做的大部分事情包括使用區(qū)域。一個Range可表示一個單元格、一行、一列或者包含一個或多個連續(xù)單元格塊的選擇、或者一個3-D區(qū)域。

Range屬性返回一個Range對象。Range屬性可以有兩種表示方法。

expression.Range(cell1)
expression.Range(cell1,cell2)

在第一個例子中,cell1表示一個單元格的區(qū)域;第二個例子中,兩個數(shù)值表示連續(xù)單元格區(qū)域。在這些示例中,expression是一個必需的元素,必須是Application對象、Range對象或Worksheet對象的其中之一。如果它被省略,便默認是ActiveSheet對象。在第二個例子中,單元格分隔符可以說對象操作符(冒號),重疊操作符(空格),或合并操作符(逗號)。

今天才知道可以使用空格來做重疊操作,例如Range(”A1:C3 B2:D4)其實就是Range(”B2:C3″)。

在下面的幾節(jié)中,你將學習使用Excel區(qū)域的多種操作方法。然而,這些示例只是你可以操作區(qū)域的一部分方法。更多關于Range對象模型成員的資料請參考Range對象成員。

給單元格賦值

給單個單元格賦值很簡單。

Worksheets("Sheet1").Range("A1").Value=3.14159

同樣,可以使用下面的方法給已命名的單元格賦值。

ActiveSheet.Range("MyCell").Value=1

下面的例子給單元格區(qū)域插入同樣的一個數(shù)值。

Worksheets("Sheet1").Range("A1:B10").Value=1

使用在第一節(jié)中介紹過的Range屬性第二種表示方法,你可以實現(xiàn)同樣的結果。

Range("A1","B10")=1

注意Range引用的對象被省略,因此默認使用當前工作表。還有,Range對象的屬性也被省略,則使用默認的Value屬性,并賦值為1。

此外,當你使用第二種表示方法時,下面的語句將XYZ值賦給Sheet2的A1、A3和A5單元格。

Worksheets("Sheet2").Range("A1,A3,A5")="XYZ"

下面的例子中,在Sheet1的A1單元格中插入一個公式。

Worksheets("Sheet1").Range("A1").Formula="=10*RAND()"

這個例子遍歷Sheet1的D1:D10單元格,如果其中一個單元格的String值等于“For Sale”,代碼將替換該值為字符串“Sold”。

For Each c in Worksheets("Sheet1").Range("D1:D10")
If c.Value="For Sale" Then
c.Value="Sold"
End If
Next c

區(qū)域的表示方法

有幾種方法表示一個區(qū)域

  • 通過單元格地址
  • 通過對另外一個單元格的偏移
  • 通過名稱
  • 當前的選擇

通過使用單元格地址有幾種方法直接表示一個區(qū)域;通過使用ActiveSheet對象你可以使用絕對引用,或者通過使用ActiveCell對象或其它區(qū)域?qū)ο竽憧梢允褂孟鄬σ谩?/p>

在工作表中引用區(qū)域
當你使用區(qū)域時,大部分時間你指的是活動工作表上的一個區(qū)域。不過你可以方便的表示一個非活動工作簿中的區(qū)域。例如,如下面的例子,你可以使用Range屬性表示ActiveSheet上的一個區(qū)域,這里指的是B1單元格到B15單元格的區(qū)域。

Range("B1:B15").Select

同樣,也可以引用另外一個非活動工作表中的同樣的單元格區(qū)域,你可以指定工作表的序號或名稱。

Worksheets(2).Range("B1:B15").Select

你也可以不知道工作表而表示一個非活動工作表的區(qū)域,但必須在該區(qū)域有唯一名稱時才行。

Range("SalesTax").Select

這個技巧不需要關心哪個工作表包含這個已命名的區(qū)域。

引用區(qū)域中的單個單元格
引用區(qū)域中的單元格同引用整個工作簿中的單元格使用同樣的方法。例如,假設指定B4:E10為區(qū)域。要引用這個區(qū)域中的B4單元格,你可以使用Range對象中的A1。要引用這個區(qū)域中的D8單元格,你可以使用Range對象中的C5。

使用偏移引用一個區(qū)域中的單元格
Offset屬性返回一個Range對象,它讓你引用相對于另外一個單元格的單元格。通過指定距離指定位置的列和行數(shù),你可以引用這個單元格。語法如下:

Object.Offset(rowOffset, columnOffset)

正值將焦點往下和右移動。負值將焦點往上和左移動。零表示當前單元格。例如,假設開始位置上單元格E5。

第一個語句在E5往下移一行的E6單元格插入1。

ActiveCell.Offset(1,0)=1

這一個語句在E5往右移一列的F5單元格插入1。

ActiveCell.Offset(0,1)=1

這一個語句在E5往左移3列的B5單元格插入1。

ActiveCell.Offset(0,-3)=1

下面的例子使用Offset屬性計算一個移動平均值。

Sub MovingAvg()
Dim rng As Range
Dim lngRow As Long
 
Set rng = Range("B1:B3")
 
For lngRow = 3 To 12
Cells(lngRow, "C").Value = WorksheetFunction.Sum(rng) / 3
Set rng = rng.Offset(1, 0)
Next lngRow
 
End Sub

這個代碼先設置B列中的前三個單元格為一個區(qū)域,將這些值的總和除以3,然后將平均值插入到C3單元格。然后使用Offset屬性將該區(qū)域往下移動一行,但仍在B列中,這樣就計算B2:B4區(qū)域中的值得平均值。這個值被插入到C4。這個計算過程一直重復到B12單元格。

引用一個命名區(qū)域中的單元格
一個命名區(qū)域擁有一個唯一的名稱。Excel將定義的區(qū)域的名稱保存在Names集合中,這個集合是Workbook對象的一個屬性。命名區(qū)域是Excel中的一個強大的工具,讓你可以給一個單元格或一個單元格區(qū)域賦予一個有意義的名稱。例如,你可以給單元格C1賦予SalesTax的名稱,然后在你正常使用單元格C1的任何時候使用SalesTax,例如下面的例子。

Total=Range("A1")*Range("SalesTax")

在文章的后面部分將更詳細地討論命名區(qū)域。

選擇單元格區(qū)域

沒有一個ActiveRange對象來表示活動區(qū)域,但有其它的方法來使用一個區(qū)域:Select方法讓你選擇一個單元格區(qū)域。當一個區(qū)域被選擇后,你可以使用Selection對象來控制該區(qū)域選擇的動作。

例如,你可以復制一個區(qū)域的值到剪貼板然后插入到一個新的工作表。

Range("D5").Activate
ActiveCell.CurrentRegion.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Sample"
Sheets("Sample").Select
Range("D5").Activate
ActiveSheet.Paste

在這個例子中,ActiveCell對象的CurrentRegion屬性用來選擇一個區(qū)域,這個例子中是D1,然后復制內(nèi)容到剪貼板。一個新的工作表添加到最后一個工作表的后面,并將單元格內(nèi)容復制到新的工作表。

你還可以對選擇的區(qū)域執(zhí)行其它的操作,例如以黑體顯示選擇的區(qū)域。

Selection.Font.Bold=True

下面的語句可以得到同樣的結果。

Range("C5:C20").Font.Bold=True

除了CurrentRegion屬性,你可以使用Range對象的End方法告訴Excel往哪個方向擴張區(qū)域。其中的枚舉類型參數(shù)表示擴張的方向。

通過End方法返回的Range對象表示位于包含目標區(qū)域的范圍尾端的單元格。使用End方法等同于按下END+UP鍵、END+DOWN鍵、END+LEFT鍵或END+RIGHT鍵。這個例子選擇包含B4單元格的范圍中B列最頂部的單元格。

Range("B4").End(xlUP).Select

這個例子選擇包含B4單元格的范圍中第4行最尾行的單元格。

Range("B4").End(xlToRight).Select

這個例子從B4單元格將選擇擴展到包含數(shù)據(jù)的第4行最后一個單元格。

Worksheets("Sheet1").Activate
Range("B4",Range("B4").End(xlToRight)).Select

下面的例子使用End方法和方向枚舉參數(shù)來匯總每一列的值。例如,假設你有很多列的數(shù)據(jù),一直從B2單元格到G11,選擇B1為活動單元格,運行宏,然后會將總和放到每列的頂端。

Sub SumBelow()
Dim rng As Range
 
' 計算活動單元格下面區(qū)域的總和并復制總和到其它的列

With ActiveCell
Set rng = Range(.Offset(1), .Offset(1).End(xlDown))
.Formula = "=SUM(" & _
rng.Address(RowAbsolute:=False, ColumnAbsolute:=False) & ")"
.Copy Destination:=Range(.Cells(1), .Offset(1).End(xlToRight).Offset(-1))
End With
 
End Sub
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
#Excel VBA#解讀(32):到達想要的單元格——Offset屬性
VBA筆記:Range對象
總結Excel之VBA編程之引用單元格、區(qū)域的各種方法下篇
Excel VBA教程:Range集合
啰哩啰嗦地講透VBA中引用單元格區(qū)域的18個有用方法--Cell屬性和Offset屬性
(11)'range.offset偏移,.resize調(diào)整區(qū)域, Entire列行,Specialcells特殊的單元格,find 查找
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服