日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Excel VBA教程:Range集合

 昵稱6335486 2011-03-13
多個(gè)對(duì)象
Range
多個(gè)對(duì)象

代表某一單元格、某一行、某一列、某一選定區(qū)域(該區(qū)域可包含一個(gè)或若干連續(xù)單元格區(qū)域),或者某一三維區(qū)域。

Range集合用法

本部分將說(shuō)明下列返回 Range對(duì)象的屬性和方法:

  • Range屬性
  • Cells屬性
  • Range 和 Cells
  • Offset屬性
  • Union方法

Range屬性

可用 Range(arg)(其中 arg 為區(qū)域名稱)來(lái)返回代表單個(gè)單元格或單元格區(qū)域的 Range對(duì)象。下例將單元格 A1 中的值賦給單元格 A5。

Worksheets("Sheet1").Range("A5").Value = _
    Worksheets("Sheet1").Range("A1").Value

下例設(shè)置單元格區(qū)域 A1:H8 中每個(gè)單元格的公式,用隨機(jī)數(shù)填充該區(qū)域。在沒(méi)有對(duì)象識(shí)別符(句號(hào)左邊的對(duì)象)的情況下,使用 Range屬性將返回活動(dòng)表上的一個(gè)區(qū)域。如果活動(dòng)表不是工作表,則該方法無(wú)效。在沒(méi)有明確的對(duì)象識(shí)別符的情況下,使用 Range屬性之前,可用Activate方法來(lái)激活工作表。

Worksheets("Sheet1").Activate
Range("A1:H8").Formula = "=Rand()"    'Range is on the active sheet

下例清除區(qū)域 Criteria 中的內(nèi)容。

Worksheets(1).Range("Criteria").ClearContents

如果用文本參數(shù)指定區(qū)域地址,必須以 A1 樣式記號(hào)指定該地址(不能用 R1C1 樣式記號(hào))。

Cells屬性

可用 Cells(row, column)(其中 row 為行號(hào),column 為列標(biāo))返回單個(gè)單元格。下例將單元格 A1 賦值為 24。

Worksheets(1).Cells(1, 1).Value = 24

下例設(shè)置單元格 A2 的公式。

ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"

雖然也可用Range("A1") 返回單元格 A1,但有時(shí)用 Cells屬性更為方便,因?yàn)閷?duì)行或列使用變量。下例在 Sheet1 上創(chuàng)建行號(hào)和列標(biāo)。注意,當(dāng)工作表激活以后,使用 Cells屬性時(shí)不必明確聲明工作表(它將返回活動(dòng)工作表上的單元格)。

Sub SetUpTable()
Worksheets("Sheet1").Activate
For TheYear = 1 To 5
Cells(1, TheYear + 1).Value = 1990 + TheYear
Next TheYear
For TheQuarter = 1 To 4
Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter
Next TheQuarter
End Sub

雖然可用 Visual Basic 字符串函數(shù)轉(zhuǎn)換 A1 樣式引用,但使用Cells(1, 1) 記號(hào)更為簡(jiǎn)便(而且也是更好的編程習(xí)慣)。

可用 expression.Cells(row, column) 返回區(qū)域中的一部分,其中 expression 是返回 Range對(duì)象的表達(dá)式,row 和 column 為相對(duì)于該區(qū)域左上角的偏移量。下例設(shè)置單元格 C5 中的公式。

Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"

Range 和 Cells

可用 Range(cell1, cell2) 返回一個(gè) Range對(duì)象,其中 cell1 和 cell2 為指定起始和終止位置的 Range對(duì)象。下例設(shè)置單元格區(qū)域 A1:J10 的邊框線條的樣式。

With Worksheets(1)
    .Range(.Cells(1, 1), _
        .Cells(10, 10)).Borders.LineStyle = xlThick
End With

注意每個(gè) Cells屬性之前的句點(diǎn)。如果前導(dǎo)的 With 語(yǔ)句應(yīng)用于該 Cells屬性,那么這些句點(diǎn)就是必需的。本示例中,句點(diǎn)指示單元格處于第一張工作表上。如果沒(méi)有句點(diǎn),Cells屬性將返回活動(dòng)工作表上的單元格。

Offset屬性

可用 Offset(row, column)(其中 row 和 column 為行偏移量和列偏移量)返回相對(duì)于另一區(qū)域在指定偏移量處的區(qū)域。下例選定位于當(dāng)前選定區(qū)域左上角單元格的向下三行且向右一列處的單元格。由于必須選定位于活動(dòng)工作表上的單元格,因此必須先激活工作表。

Worksheets("Sheet1").Activate
'Can't select unless the sheet is active
Selection.Offset(3, 1).Range("A1").Select

Union方法

可用 Union(range1, range2, ...) 返回多塊區(qū)域,即該區(qū)域由兩個(gè)或多個(gè)連續(xù)的單元格區(qū)域所組成。下例創(chuàng)建由單元格區(qū)域 A1:B2 和 C3:D4 組合定義的對(duì)象,然后選定該定義區(qū)域。

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Worksheets("sheet1").Activate
Set r1 = Range("A1:B2")
Set r2 = Range("C3:D4")
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select

使用包含若干塊的選定區(qū)域時(shí),Areas屬性很有用。它將一個(gè)多塊選定區(qū)域分割為單個(gè)的 Range對(duì)象,然后將這些對(duì)象作為一個(gè)集合返回。使用返回的集合的Count屬性可檢測(cè)一個(gè)選定區(qū)域是否包含多塊區(qū)域,如下例所示。

Sub NoMultiAreaSelection()
NumberOfSelectedAreas = Selection.Areas.Count
If NumberOfSelectedAreas > 1 Then
MsgBox "You cannot carry out this command " & _
"on multi-area selections"
End If
End Sub

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多