VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié)_第1頁
VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié)_第2頁
VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié)_第3頁
VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié)_第4頁
VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié).txt大人物的悲哀在于他們需要不停地做出選擇;而小人物的悲哀在于他們從來沒有選擇的機會。男人因滄桑而成熟,女人因成熟而滄桑。男人有了煙,有了酒,也就有了故事;女人有了錢,有了資色,也就有了悲劇。在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結(jié) 問題一:在VBA代碼中,如何引用當(dāng)前工作表中的單個單元格(例如引用單元格C3? 回答:可以使用下面列舉的任一方式對當(dāng)前工作表中的單元格(C3進行引用。 (1 Range("C3" (2 C3 (3 Cells(3, 3 (4 Cells(3, "C"

2、(5 Range("C4".Offset(-1 Range("D3".Offset(, -1 Range("A1".Offset(2, 2 (6 若C3為當(dāng)前單元格,則可使用:ActiveCell (7 若將C3單元格命名為“Range1”,則可使用:Range("Range1"或Range1 (8 Cells(4, 3.Offset(-1 - 問題二:在VBA代碼中,我要引用當(dāng)前工作表中的B2:D6單元格區(qū)域,有哪些方式? 回答:可以使用下面列舉的任一方式對當(dāng)前工作表中單元格區(qū)域B2:D6進行引用。 (1 Ran

3、ge(“B2:D6” (2 Range("B2", "D6" (3 B2:D6 (4 Range(Range("B2", Range("D6" (5 Range(Cells(2, 2, Cells(6, 4 (6 若將B2:D6區(qū)域命名為“MyRange”,則又可以使用下面的語句引用該區(qū)域: Range("MyRange" MyRange (7 Range("B2".Resize(5, 3 (8 Range("A1:C5".Offset(1, 1 (9 若

4、單元格B2為當(dāng)前單元格,則可使用語句:Range(ActiveCell, ActiveCell.Offset(4, 2 (10 若單元格D6為當(dāng)前單元格,則可使用語句:Range("B2", ActiveCell - 問題三:在VBA代碼中,如何使用變量實現(xiàn)對當(dāng)前工作表中不確定單元格區(qū)域的引用? 回答:有時,我們需要在代碼中依次獲取工作表中特定區(qū)域內(nèi)的單元格,這通常可以采取下面的幾種方式: (1 Range(“A” & i (2 Range(“A” & i & “:C” & i (3 Cells(i,1 (4 Cells(i,j 其中,i、j

5、為變量,在循環(huán)語句中指定i和j的范圍后,依次獲取相應(yīng)單元格。 - 問題四:在VBA代碼中,如何擴展引用當(dāng)前工作表中的單元格區(qū)域? 回答:可以使用Resize屬性,例如: (1 ActiveCell.Resize(4, 4,表示自當(dāng)前單元格開始創(chuàng)建一個4行4列的區(qū)域。 (2 Range("B2".Resize(2, 2,表示創(chuàng)建B2:C3單元格區(qū)域。 (3 Range("B2".Resize(2,表示創(chuàng)建B2:B3單元格區(qū)域。 (4 Range("B2".Resize(, 2,表示創(chuàng)建B2:C2單元格區(qū)域。 如果是在一個單元格區(qū)域(如B

6、3:E6,或一個命名區(qū)域中(如將單元格區(qū)域B3:E6命名為“MyRange”使用Resize屬性,則只是相對于單元格區(qū)域左上角 單元格擴展區(qū)域,例如: 代碼Range("C3:E6".Resize(, 2,表示單元格區(qū)域C3:D6,并且擴展的單元格區(qū)域可不在原單元格區(qū)域內(nèi)。 因此,可以知道Resize屬性是相對于當(dāng)前活動單元格或某單元格區(qū)域中左上角單元格按指定的行數(shù)或列數(shù)擴展單元格區(qū)域。 - 問題五:在VBA代碼中,如何在當(dāng)前工作表中基于當(dāng)前單元格區(qū)域或指定單元格區(qū)域處理其它單元格區(qū)域? 回答:可以使用Offset屬性,例如: (1 Range("A1"

7、.Offset(2, 2,表示單元格C3。 (2 ActiveCell.Offset(, 1,表示當(dāng)前單元格下一列的單元格。 (3 ActiveCell.Offset(1,表示當(dāng)前單元格下一行的單元格。 (4 Range("C3:D5".Offset(, 1,表示單元格區(qū)域D3:E5,即將整個區(qū)域偏移一列。 從上面的代碼示例可知,Offset屬性從所指定的單元格開始按指定的行數(shù)和列數(shù)偏移,從而到達目的單元格,但偏移的行數(shù)和列數(shù)不包括指定單元格本身。 - 問題六:在VBA代碼中,如何在當(dāng)前工作表中引用交叉區(qū)域? 回答:可以使用Intersect方法,例如: Intersect

8、(Range("C3:E6", Range("D5:F8",表示單元格區(qū)域D5:E6,即單元格區(qū)域C3:E6與D5:F8相重迭的區(qū)域。 - 問題七:在VBA代碼中,如何在當(dāng)前工作表中引用多個區(qū)域? 回答: (1 可以使用Union方法,例如: Union(Range("C3:D4", Range("E5:F6",表示單元格區(qū)域C3:D4和E5:F6所組成的區(qū)域。 Union方法可以將多個非連續(xù)區(qū)域連接起來成為一個區(qū)域,從而可以實現(xiàn)對多個非連續(xù)區(qū)域一起進行操作。 (2 也可以使用下面的代碼: Range("

9、C3:D4, E5:F6"或C3:D4, E5:F6 注意:Range("C3:D4", "F5:G6",表示單元格區(qū)域C3:G6,即將兩個區(qū)域以第一個區(qū)域左上角單元格為起點,以第二個區(qū)域右下角單元格為終點連接成一個新區(qū)域。 同時,在引用區(qū)域后使用Rows屬性和Columns屬性時,注意下面代碼的區(qū)別: Range("C3:D4", "F8:G10".Rows.Count,返回的值為8; Range("C3:D4,F8:G10".Rows.Count,返回的值為2,即只計算第一個單元格

10、區(qū)域。 - 問題八:在VBA代碼中,如何引用當(dāng)前工作表中活動單元格或指定單元格所在的區(qū)域(當(dāng)前區(qū)域? 回答:可以使用CurrentRegion屬性,例如: (1 ActiveCell.CurrentRegion,表示活動單元格所在的當(dāng)前區(qū)域。 (2 Range("D5".CurrentRegion,表示單元格D5所在的當(dāng)前區(qū)域。 當(dāng)前區(qū)域是指周圍由空行或空列所圍成的區(qū)域。該屬性的詳細(xì)使用參見CurrentRegion屬性示例一文。 - - 問題九:在VBA代碼中,如何引用當(dāng)前工作表中已使用的區(qū)域? 回答:可以使用UsedRange屬性,例如: (1 Activesheet.

11、UsedRange,表示當(dāng)前工作表中已使用的區(qū)域。 (2 Worksheets("sheet1".UsedRange,表示工作表sheet1中已使用的區(qū)域。 與CurrentRegion屬性不同的是,該屬性代表工作表中已使用的單元格區(qū)域,包括顯示為空行,但已進行過格式的單元格區(qū)域。該屬性的詳細(xì)使用參見解析UsedRange屬性一文。 - 問題十:如何在單元格區(qū)域內(nèi)指定特定的單元格? 回答:可以使用Item屬性,例如: (1 Range("A1:B10".Item(5,3指定單元格C5,這個單元格處于以區(qū)域中左上角單元格A1(即區(qū)域中第1行第1列的單元格為

12、起點的第5行第3列。因為Item屬性為默認(rèn)屬性,因此也可以簡寫為:Range("A1:B10"(5,3。 如果將A1:B10區(qū)域命名為”MyRange”,那么Range("MyRange"(5,3也指定單元格C5。 (2 Range("A1:B10"(12,13指定單元格M12,即用這種方式引用單元格,該單元格不必一定要包含在區(qū)域內(nèi)。 同時,也不需要索引數(shù)值是正值,例如: Range("D4:F6"(0,0代表單元格C3; Range("D4:F6"(-1,-2代表單元格A2。 而Range(&

13、quot;D4:F6"(1,1代表單元格D4。 (3 也可以在單元格區(qū)域中循環(huán),例如: Range("D4:F6"(2,2(3,4代表單元格H7,即該單元格位于作為左上角單元格E5的第3行第4列(因為E5是開始于區(qū)域中左上角單元格D4起的第2行第2列。 (4 也能使用一個單個的索引數(shù)值進行引用。計數(shù)方式為從左向右,即在區(qū)域中的第一行開始從左向右計數(shù),第一行結(jié)束后,然后從第二行開始從左到右接著計數(shù),依次類推。(注:從區(qū)域中第一行第一個單元格開始計數(shù),當(dāng)?shù)谝恍薪Y(jié)束時,轉(zhuǎn)入第二行最左邊的單元格,這樣按一行一行從左向右依次計數(shù)。以單元格區(qū)域中第1個單元格開始,按上述規(guī)則依

14、次為第2個單元格、第3個單元格.等等,例如: Range("A1:B2"(1 代表單元格A1; Range("A1:B2"(2 代表單元格B1; Range("A1:B2"(3 代表單元格A2; Range("A1:B2"(4 代表單元格B2。 這種方法可在工作表中連續(xù)向下引用單元格(即不一定是在單元格區(qū)域內(nèi),但在遵循相同的規(guī)律,例如: Range("A1:B2"(5代表單元格A3; Range("A1:B2"(14代表單元格B7,等等。 也可以使用單個的負(fù)數(shù)索引值。 這種使

15、用單個索引值的方法對遍歷列是有用的,例如,Range("D4"(1代表單元格D4,Range("D4"(2代表單元格D5,Range ("D4"(11代表單元格D14,等等。 同理,稍作調(diào)整后也可遍歷行,例如: Range("D4".Columns(2代表單元格E4,Range("D4".Columns(5指定單元格H4,等等 。 (5當(dāng)與對象變量配合使用時,Item屬性能提供簡潔并有效的代碼,例如: Set rng = Worksheets(1.a1 定義了對象變量后,像單元格方法一樣,Ite

16、m屬性允許使用兩個索引數(shù)值引用工作表中的任一單元格,例如,rng(3,4指定單元格D3。(By Chip Pearson - 問題十一:在VBA代碼中,如何引用當(dāng)前工作表中的整行或整列? 回答:見下面的示例代碼: (1 Range("C:C".Select,表示選擇C列。 Range("C:E".Select,表示選擇C列至E列。 (2 Range("1:1".Select,表示選擇第一行。 Range("1:3".Select,表示選擇第1行至第3行。 (3 Range("C:C".Entir

17、eColumn,表示C列; Range("D1".EntireColumn,表示D列。 同樣的方式,也可以選擇整行,然后可以使用如AutoFit方法對整列或整行進行調(diào)整。 - 問題十二:在VBA代碼中,如何引用當(dāng)前工作表中的所有單元格? 回答:可以使用下面的代碼: (1 Cells,表示當(dāng)前工作表中的所有單元格。 (2 Range(Cells(1, 1, Cells(Cells.Rows.Count, Cells. Columns.Count,其中Cells.Rows表示工作表所有行,Cells. Columns表示工作表所有列。 - 問題十三:在VBA代碼中,如何引用工作

18、表中的特定單元格區(qū)域? 回答:在工作表中,您可能使用過“定位條件”對話框??梢酝ㄟ^選擇菜單“編輯定位”,單擊“定位”對話框中的“定位條件”按鈕顯示該對話框。這個對話框可以允許用戶選擇特定的單元格。例如: (1 Worksheets("sheet1".Cells.SpecialCells(xlCellTypeAllFormatConditions,表示工作表sheet1中由帶有條件格式的單元格所組成的區(qū)域。 (2 ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks,表示當(dāng)前工作表中活動單元格所在區(qū)域中所有空白單元格所組

19、成的區(qū)域。 當(dāng)然,還有很多常量和值的組合,可以讓您實現(xiàn)特定單元格的查找并引用。參見探討在工作表中找到最后一行一文。 - 問題十四:在VBA代碼中,如何引用其它工作表或其它工作簿中的單元格區(qū)域? 回答:要引用其它工作表或其它工作簿中的單元格區(qū)域,只需在單元格對象前加上相應(yīng)的引用對象即可,例如: (1 Worksheets(“Sheet3”.Range(“C3:D5”,表示引用工作表sheet3中的單元格區(qū)域C3:D5。 (2 Workbooks(“MyBook.xls”.Worksheets(“sheet1”.Range(“B2”,表示引用MyBook工作簿中工作表Sheet1上的單元格B2。

20、- 問題十五:還有其它 的一些情形嗎? 回答:列舉如下: (1 Cells(15,表示單元格O1,即可在Cells屬性中指定單元格數(shù)字來選擇單元格,其計數(shù)順序為自左至右、從上到下,又如Cells(257,表示單元格B1。 (2 Cells(, 256,表示單元格IV1,但是如果Cells(, 257,則會返回錯誤。 - 結(jié)語 我們用VBA對Excel進行處理,一般是對其工作表中的數(shù)據(jù)進行處理,因此,引用單元格區(qū)域是ExcelVBA編程中最基本的操作之一,只有確定了所處理的單元格區(qū)域,才能使用相應(yīng)的屬性和方法進行下一步的操作。 上面列舉了一些引用單元格區(qū)域的情形和方式,可以看出,引用單元格區(qū)域有

21、很多方式,有一些可能不常用,可以根據(jù)工作表的所處的環(huán)境和個人編程習(xí)慣進行選擇使用。 當(dāng)然,在編寫程序時,也可能會將上面的一些屬性聯(lián)合使用,以達到選取特定操作對象的目的,例如Offset屬性、Resize屬性、CurrentRegion屬性、UsedRange屬性等的組合。 找到最后一行的一些方法探討 使用End屬性 在ExcelVBA中,使用End(xlUp查找最后一行是最常使用且最為簡單的方法,它假設(shè)要有一列總包含有數(shù)據(jù)(數(shù)字、文本和公式等,并且在該列中最后輸入數(shù)據(jù)的單元格的下一行不會包含數(shù)據(jù),因此不必?fù)?dān)心會覆蓋掉已有數(shù)據(jù)。但該方法有兩個缺點: (1 僅局限于查找指定列的最后一行。 (2 如

22、果該列中最后一行被隱藏,那么該隱藏行將被視作最后一行。因此,在最后一行被隱藏時,其數(shù)據(jù)可能會被覆蓋。但該列中間的隱藏行不會影響查找的結(jié)果。 示例代碼01 Sub EndxlUp_OneColLastRow( If Range("A" & Rows.Count.End(xlUp = Empty Then GoTo Finish '獲取最后一行 MsgBox "最后一行是第" & Range("A" & Rows.Count.End(xlUp.Row & “行.” Exit Sub Finish:

23、MsgBox "沒有發(fā)現(xiàn)公式或數(shù)據(jù)! " End Sub 示例代碼02 Sub NextRowInColumnUsedAsSub( '包含所有數(shù)據(jù)和公式,忽略隱藏的最后一行 Range("A" & Range("A" & Rows.Count.End(xlUp.Row + 1.Select End Sub 示例代碼03 Sub NextRowInColumnUsedAsFunction( '包含所有數(shù)據(jù)和公式,忽略隱藏的最后一行 Range("A" & LastRowInCo

24、lumn("A" + 1.Select End Sub '- - - - - - - - - - - - - - - - - - - - - - - - - Public Function LastRowInColumn(Column As String As Long LastRowInColumn = Range(Column & Rows.Count.End(xlUp.Row End Function 注意,要輸入新數(shù)據(jù)的列可能與我們所查找最后一行時所使用的列不同,例如,在上例中,我們可以修改為在B列中查找該列的最后一行,而在A列相應(yīng)行的下一行中輸入新

25、的數(shù)據(jù)。 - 使用Find方法 Find方法 在當(dāng)前工作有數(shù)據(jù)中進行查找,不需要指定列,也可以確保不會意外地覆蓋掉已有數(shù)據(jù)。其中,參數(shù)LookIn指定所查找的類型,有三個常量可供選擇,即xlValues、xlFormulas和xlComments。 (1 常量xlFormulas將包含零值的單元格作為有數(shù)據(jù)的單元格。(當(dāng)設(shè)置零值不顯示時,該單元格看起來為空,但該參數(shù)仍將該單元格視為有數(shù)據(jù)的單元格 (2 常量xlValues將包含零值的單元格(如果設(shè)置零值不顯示時作為空白單元格,此時,若該單元格在最后一行,則Find方法會認(rèn)為該單元格所在的行為空行,因此,該單元格中的內(nèi)容可能會被新數(shù)據(jù)所覆蓋。

26、注:在Excel中,選擇菜單“工具”“選項”,在打開的“選項”對話框中,選擇“視圖”選項卡,將其中的“零值”前的復(fù)選框取消選中,則工作表中的零值都不會顯示 如果在參數(shù)LookIn中使用常量xlValues的話,還存在一個問題是:如果您將最后一行隱藏,則Find方法會認(rèn)為倒數(shù)第二行是最后一行,此時您在最后一行的下一行輸入數(shù)據(jù),則會將實際的最后一行的數(shù)據(jù)覆蓋。 您可以在隱藏最后一行與不隱藏最后一行,或者是最后一行顯示零值與不顯示零值時,運行下面的示例代碼04,看看所得的結(jié)果有什么不同。 示例代碼04 Sub Find_LastRowxlValues( On Error GoTo Finish &#

27、39;獲取最后一行 MsgBox "最后一行是第" & Cells.Find("*", _ SearchOrder:=xlByRows, LookIn:=xlValues, _ SearchDirection:=xlPrevious.EntireRow.Row & “行” Exit Sub Finish: MsgBox "沒有發(fā)現(xiàn)數(shù)值!" End Sub 因此,在使用Find方法時,您應(yīng)該考慮所選參數(shù)設(shè)置的常量,以及工作表最后一行是否有可能被隱藏或不顯示零值。如果您忽視這些情況,很可能得不到您想要的結(jié)果,或者是覆蓋掉已

28、有數(shù)據(jù)。使用常量xlFormulas可以避免這個問題,如下面的示例代碼05所示。 示例代碼05 Sub Find_LastRowxlFormulas( On Error GoTo Finish '獲取最后一行 MsgBox "最后一行是第" & Cells.Find("*", _ SearchOrder:=xlByRows, LookIn:=xlFormulas, _ SearchDirection:=xlPrevious.EntireRow.Row & “行” Exit Sub Finish: MsgBox "沒發(fā)現(xiàn)數(shù)

29、值或公式!" End Sub 下面再列舉幾個示例代碼。 示例代碼06 Sub NextRowUsedAsSub( '選取最后一行的下一行 Range("A" & Cells.Find("*", LookIn:=xlFormulas, SearchDirection:=xlPrevious.Row + 1.Select End Sub 示例代碼07 Sub NextRowUsedAsFunction( '選取最后一行的下一行(調(diào)用函數(shù) Range("A" & LastRow + 1.Select

30、 End Sub '- - - - - - - - - - - - - - - - - - - - - - - - - Public Function LastRow( As Long '本代碼包含隱藏行 '使用常量xlFormulas,因為常量xlValues會忽略隱藏的最后一行 LastRow = Cells.Find(" *", LookIn:=xlFormulas, SearchDirection:=xlPrevious.Row End Function 注:Find方法中,參數(shù)LookIn的默認(rèn)值為xlFormulas。 - 使用Speci

31、alCells方法 SpecialCells方法用于查找指定類型的值,其語法為SpecialCells(Type,Value,有兩種主要的使用方式: (1 若參數(shù)Type僅考慮常量,則在查找時會忽略和覆蓋由公式生成的任何數(shù)據(jù),如示例代碼08所示。 (2 若參數(shù)Type僅考慮由公式生成的數(shù)據(jù),則在查找時會忽略和覆蓋任何常量數(shù)據(jù),如示例代碼09所示。 如果參數(shù)Type是xlCellTypeConstants或者是xlCellTypeFormulas,則Value參數(shù)可使用常量決定哪種類型的單元格將被包含在結(jié)果中,這些常量值能組合而返回多個類型,其缺省設(shè)置是選擇所有的常量或公式,而不管是何類型,可使

32、用下面四個可選的常量: 1 xlTextValues(包含文本; 2 xlNumbers(包含數(shù)字; 3 xlErrors(包含錯誤值; 4 xlLogical(包含邏輯值 自已在工作表輸入一些含有數(shù)值和公式的數(shù)據(jù),隱藏或不隱藏最后一行或公式所在的行,先體驗下面的兩段示例代碼。 示例代碼08 '當(dāng)最后一行為公式或隱藏了最后行時,會忽略,即認(rèn)為倒數(shù)第二行為最后一行 Sub NextConstantRowFunction( Range("A" & LastConstantRow(True, True, True, True + 1.Select End Sub

33、'- - - - - - - - - - - - - - - - - - - - - - - - Public Function LastConstantRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Boolean, _ Optional IncludeLogicals As Boolean As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical

34、 As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Errors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logic

35、al On Error GoTo Finish LastConstantRow = Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes.Address, "$" _ (UBound(Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes.Address, "$" Exit Function Finish: MsgBox "沒有發(fā)現(xiàn)數(shù)據(jù)!" End Function 示例代碼09 '查找含有公式的單元格所在的行,忽略該

36、行以后的常量和隱藏的行 Sub NextFormulaRowFunction( Range("A" & LastFormulaRow(True, True, True, True + 1.Select End Sub '- - - - - - - - - - - - - - - - - - - Public Function LastFormulaRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Bool

37、ean, _ Optional IncludeLogicals As Boolean As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Er

38、rors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logical On Error GoTo Finish LastFormulaRow = Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes.Address, "$" _ (UBound(Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes.Addres

39、s, "$" Exit Function Finish: MsgBox "沒有發(fā)現(xiàn)數(shù)據(jù)!" End Function 下面的示例代碼10忽略最后一行帶有公式的單元格,即當(dāng)最后一行的單元格中含有公式時,將倒數(shù)第二行作為最后一行,即只考慮直接輸入到工作表中的數(shù)據(jù)。當(dāng)最后一行沒有公式但被隱藏時,并不影響該方法的判斷。 示例代碼10 Sub SpecialCells_LastRowxlCellTypeConstants( Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect(A:A, Cell

40、s. _ SpecialCells(xlCellTypeConstants.EntireRow.EntireRow '獲取最后一行 MsgBox "最后一行是第" & Split(MyRow.Address, "$" _ (UBound(Split(MyRow.Address, "$" & “行” Set MyRow = Nothing Exit Sub Finish: MsgBox "沒有發(fā)現(xiàn)數(shù)據(jù)!" End Sub 注:因為上述代碼使用了Split函數(shù),故只適合于Office2000及以

41、上的版本。 該方法也允許我們指定單個數(shù)據(jù)類型,諸如數(shù)字?jǐn)?shù)據(jù)或文本數(shù)據(jù),如下所示。 下面,我們查找的最后一行是僅在行中有數(shù)字(而不包含公式的單元格的最后一行。 示例代碼11 Sub SpecialCells_LastRowxlCellTypeNumberConstants( Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect(A:A, Cells. _ SpecialCells(xlCellTypeConstants, xlNumbers.EntireRow '獲取最后一行 MsgBox "最后一行是第" & Split(MyRow.Address, "$" _ (UBound(Split(MyRow.Ad

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論