使用VBA代碼確定、激活、選擇單元格區(qū)域_第1頁(yè)
使用VBA代碼確定、激活、選擇單元格區(qū)域_第2頁(yè)
使用VBA代碼確定、激活、選擇單元格區(qū)域_第3頁(yè)
使用VBA代碼確定、激活、選擇單元格區(qū)域_第4頁(yè)
使用VBA代碼確定、激活、選擇單元格區(qū)域_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、使用VBA代碼確定、激活、選擇單元格區(qū)域如何選擇當(dāng)前工作表中的單元格?例如,可以使用下面的代碼選擇當(dāng)前工作表中的單元格D5 :ActiveSheet.Cells(5, 4).Select或:ActiveSheet.Range(D5).Select如何選擇同一工作簿中其它工作表上的單元格?例如,要選擇同一工作簿中另一工作表上的單元格E6,可以使用下面的代碼:Application.GotoActiveWorkbook.Sheets(Sheet2).Cells(6, 5)或:Application.Goto(ActiveWorkbook.Sheets(Sheet2).Range(E6)也可以先激活

2、該工作表,然后再選擇:Sheets(Sheet2).ActivateActiveSheet.Cells(6, 5).Select如何選擇不同工作簿中的單元格?例如,要選擇另一工作簿中的一個(gè)工作表上的單元格F7,可以使用下面的代碼:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Cells(7, 6)或:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Range(F7)也可以先激活該工作簿中的工作表,然后再選擇:Workbooks(BOOK2.XLS).Sheets(Sheet1).A

3、ctivateActiveSheet.Cells(7, 6).Select如何選擇當(dāng)前工作表中的單元格區(qū)域?例如,要選擇當(dāng)前工作表中的單元格區(qū)域C2:D10 ,可以使用下面的代碼:ActiveSheet.Range(Cells(2, 3), Cells(10, 4),Select或:ActiveSheet.Range(C2:D10).Select或:ActiveSheet.Range(C2, D10).Select如何選擇同一工作簿中另一工作表上的單元格區(qū)域?例如,要選擇同一工作簿中另一工作表上的單元格區(qū)域D3 :E11 ,可以使用下面的代碼:Application.GotoActiveWor

4、kbook.Sheets(Sheet3).Range(D3:E11)或:Application.GotoActiveWorkbook.Sheets(Sheet3).Range(D3, E11)也可以先激活該工作表,然后再選擇:Sheets(Sheet3).ActivateActiveSheet.Range(Cells(3, 4), Cells(11,5),Select如何選擇不同工作簿中工作表上的單元格區(qū)域?例如,要選擇另一工作簿中莫工作表上的單元格區(qū)域E4:F12 ,可以使用下面的代碼:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).R

5、ange(E4:F 12)或:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Range(E4, F12)也可以先激活該工作表,然后再選擇:Workbooks(BOOK2.XLS).Sheets(Sheet1).ActivateActiveSheet.Range(Cells(4, 5), Cells(12, 6),Select如何在當(dāng)前工作表中選擇命名區(qū)域?例如,要選擇當(dāng)前工作表中名為 “Test”的區(qū)域,可以使用下面的代碼:Range(Test).Select或:Application.Goto Test如何選擇同一工作簿中另一工作表上

6、的命名區(qū)域?例如,選擇同一工作簿中另一工作表上名為“Test”的區(qū)域,可使用下面的代碼:Application.Goto Sheets(Sheet1).Range(Test)也可以先激活工作表,再選擇:Sheets(Sheet1).ActivateRange(Test).Select如何選擇不同工作簿中工作表上的命名區(qū)域?例如,要選擇不同工作簿中工作表上名為 “Test”的區(qū)域,可使用下面的代碼:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet2).Range(Test )也可以先激活工作表,再選擇:Workbooks(BOOK2.XLS).S

7、heets(Sheet2).ActivateRange(Test).Select如何選擇與當(dāng)前單元格相關(guān)的單元格?例如,要選擇距當(dāng)前單元格下面5行左側(cè)4列的單元格,可以使用下面的代碼:ActiveCell.Offset(5, -4).Select要選擇距當(dāng)前單元格上方2行右側(cè)3列的單元格,可以使用下面的代碼:ActiveCell.Offset(-2, 3).Select注意:一定要保證當(dāng)前單元格與所選單元格之間的距離在工 作表范圍內(nèi),否則會(huì)由錯(cuò)。如何選擇與另一單元格(不是當(dāng)前單元格)相關(guān)的單元格?例如,要選擇距單元格C7下方5行右側(cè)4列的單元格,可以使用下面的代碼:ActiveSheet.Ce

8、lls(7, 3).Offset(5, 4).Select或:ActiveSheet.Range(C7).Offset(5, 4).Select如何選擇偏離指定區(qū)域的一個(gè)單元格區(qū)域?例如,要選擇與名為“Test”的區(qū)域大小相同但 在該區(qū)域下方4行右側(cè)3列的一個(gè)區(qū)域,可以使用下面的代 碼:ActiveSheet.Range(Test).Offset(4, 3).Select如果該命名區(qū)域不在當(dāng)前工作表中,可以先激活該工作表, 然后再選擇,如下面的代碼:Sheets(Sheet3).ActivateActiveSheet.Range(Test).Offset(4, 3).Select如何選擇一個(gè)指

9、定的區(qū)域并擴(kuò)展區(qū)域的大???例如,要選擇當(dāng)前工作表中名為“Database”區(qū)域,然后將該區(qū)域向下擴(kuò)展5行,可以使用下面的代碼:Range(Database).SelectSelection.Resize(Selection.Rows.Count + 5,Selection.Columns.Count).Select如何選擇一個(gè)指定的區(qū)域,再偏離,然后擴(kuò)展區(qū)域的大小?例如,選擇名為 “Database” 區(qū)域下方4行右側(cè)3列的一個(gè)區(qū)域,然后擴(kuò)展2行和1歹U,可以使用下面的代碼:Range(Database).SelectSelection.Offset(4, 3).Resize(Selectio

10、n.Rows.Count + 2,Selection.Columns.Count + 1).Select如何選擇兩個(gè)或多個(gè)指定區(qū)域?例如,為了同時(shí)選擇名為 “Test”和“Sample”的兩個(gè)區(qū)域,可以使用下面的代碼:Application.Union(Range(Test),Range(Sample).Select注意,這兩個(gè)區(qū)域須在同一工作表中,如下面的代碼:Set y = Application.Union(Range(Sheet1!A1:B2),Range(Sheet1!C3:D4)但Union方法不能處理不同工作表中的區(qū)域,可下面的代碼:Set y = Application.Uni

11、on(Range(Sheet1!A1:B2), Range(Sheet2!C3:D4)將會(huì)由錯(cuò)。如何選擇兩個(gè)或多個(gè)指定區(qū)域的交叉區(qū)域?例如,要選擇名為 “Test” 和“Sample” 的兩個(gè)區(qū)域的交叉區(qū)域,可以使用 下面的代碼:Application.Intersect(Range(Test), Range(Sample).Select注意,兩個(gè)區(qū)域必須在同一工作表中。如何選擇連續(xù)數(shù)據(jù)列中的最后一個(gè)單元格?例如,要選擇一個(gè)連續(xù)列中的最后一個(gè)單元格,可以使用下面的代碼:ActiveSheet.Range(a1).End(xlDown).Select該代碼使用在上面的工作表中,單元格 A4被選擇

12、。如何選擇連續(xù)數(shù)據(jù)列底部的空單元格?例如,要選擇連續(xù)單元格區(qū)域下面的單元格,可以使用下面 的代碼:ActiveSheet.Range(a1).End(xlDown).Offset(1,0).Select該代碼使用在上面的工作表中,單元格 A5被選擇。如何選擇奧列中連續(xù)數(shù)據(jù)單元格區(qū)域?例如,要選擇一列中的連續(xù)數(shù)據(jù)單元格區(qū)域,可以使用下面的代碼:ActiveSheet.Range(a1,ActiveSheet.Range(a1).End(xlDown),Select或:ActiveSheet.Range(a1: &ActiveSheet.Range(a1).End(xlDown).Address)

13、.Select該代碼使用在上面的工作表中,單元格區(qū)域A1 : A4將被選擇。如何選擇奧列中非連續(xù)數(shù)據(jù)單元格區(qū)域?例如,要選擇奧列中非連續(xù)數(shù)據(jù)單元格區(qū)域,可以使用下面 的代碼:ActiveSheet.Range(a1,ActiveSheet.Range(a65536).End(xlUp).Select或:ActiveSheet.Range(a1: &ActiveSheet.Range(a65536).End(xlUp).Address).Select該代碼使用在上面的工作表中,單元格區(qū)域A1 : A6將被選擇。如何選擇一個(gè)矩形(規(guī)則的)單元格區(qū)域?要選擇圍繞奧單元格的一個(gè)矩形區(qū)域,可以使用Cur

14、rentRegion 方法。CurrentRegion 方法將選擇四周被空 行和空列圍繞的區(qū)域,如下面的代碼:ActiveSheet.Range(a1).CurrentRegion.Select該代碼使用在上面的工作表中,將選擇單元格區(qū)域A1 : C4 也可以使用下面的代碼:ActiveSheet.Range(a1,ActiveSheet.Range(a1).End(xlDown).End(xlToRight).Se lect或:ActiveSheet.Range(a1: &ActiveSheet.Range(a1).End(xlDown).End(xlToRight).Address).Se

15、lect若想選擇單元格區(qū)域 A1 : C6,可使用下面的代碼:lastCol = ActiveSheet.Range(a1).End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range(a1, ActiveSheet.Cells(lastRow, lastCol),Select或:lastCol = ActiveSheet.Range(a1).End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastC

16、ol).End(xlUp).RowActiveSheet.Range(a1: &ActiveSheet.Cells(lastRow,lastCol).Address).Select如何選擇多個(gè)不同長(zhǎng)度的非連續(xù)列?要同時(shí)選擇A列和C列中的數(shù)據(jù),即單元格區(qū)域A1:A3和C1:C6 ,可使用下面的代碼:StartRange = A1EndRange = C1Set a = Range(StartRange,Range(StartRange).End(xlDown)Set b = Range(EndRange, Range(EndRange).End(xlDown)Union(a, b).Select

17、注:使用Application.Goto 方法,如果指定另一工作表 (不是 當(dāng)前工作表)中的指定區(qū)域,在Range屬性中使用兩個(gè) Cells 屬性時(shí),則必須包括 Sheets對(duì)象,如:Application.GotoSheets(Sheet1).Range(Sheets(Sheet1).Range(Sheets(Sheet1).Cells(2, 3),Sheets(Sheet1).Cells(4, 5)在VBA中,Range對(duì)象既可表示單個(gè)單元格,也可表示單 元格區(qū)域。下面的內(nèi)容說(shuō)明了標(biāo)識(shí)和處理Range對(duì)象最常用的方法。引用工作表上的所有單元格如果對(duì)工作表應(yīng)用 Cells屬性時(shí)不指定索引號(hào),

18、該方法將返 回代表工作表上所有單元格的Range對(duì)象。以下Sub過(guò)程清除活動(dòng)工作簿中Sheet1上的所有單元格的內(nèi)容。Sub ClearSheet()Worksheets(Sheet1).Cells.ClearContentsEnd Sub使用A1表示法引用單元格和區(qū)域可使用Range屬性引用 A1引用樣式中的單元格或單元格區(qū)域。下述子例程將單元格區(qū)域A1:D5的字體設(shè)置為加粗。Sub FormatRange()Workbooks(Book1).Sheets(Sheet1).Range(A1:D5) _.Font.Bold = TrueEnd Sub下表演示了使用Range屬性的一些 A1樣式

19、引用。引用含義Range(A1)單元格 A1Range(A1:B5)從單元格 A1到單元格 B5的區(qū)域Range(C5:D9,G9:H16)多塊選定區(qū)域Range(A:A)Range(1:1)Range(A:C)Range(1:5)Range(1:1,3:3,8:8)Range(A:A,C:C,F:F)引用行和列A列第一行從A列到C列的區(qū)域從第一行到第五行的區(qū)域第1、 3和8行A 、 C和F歹U可用Rows屬性或Columns屬性來(lái)處理整行或整列。個(gè)屬性返回代表單元格區(qū)域的Range對(duì)象。在下例中,Rows(1)返回Sheet1上的第一行,然后將區(qū)域字體加粗。這兩Sub RowBold()Wo

20、rksheets(Sheet1).Rows(1).Font.Bold = TrueEnd Sub下表舉例說(shuō)明了使用Rows和Columns屬性的一些行和列的引用。引用含義Rows(1) 第一行Rows 工作表上所有的行Columns(1) 第一列Columns(A) 第一列Columns工作表上所有的列若要同時(shí)處理若干行或列,可創(chuàng)建一個(gè)對(duì)象變量并使用Union 方法,將對(duì) Rows 屬性或 Columns屬性的多個(gè)調(diào)用組合起來(lái)。下例將活動(dòng)工作簿中第一張工作 表上的第一行、第三行和第五行的字體設(shè)置為加粗。Sub SeveralRows()Worksheets(Sheet1).ActivateDi

21、m myUnion As RangeSet myUnion = Union(Rows(1), Rows(3), Rows(5)myUnion.Font.Bold = TrueEnd Sub使用索引號(hào)引用單元格通過(guò)使用行列索引號(hào),可用Cells屬性引用單個(gè)單元格。該屬性返回代表單個(gè)單元格的Range對(duì)象。在下例中,Cells(6,1)返回Sheet1上的單元格A6,然后將Value屬性設(shè)置為10。Sub EnterValue()Worksheets(Sheet1).Cells(6, 1).Value = 10End Sub因?yàn)榭捎米兞刻娲幪?hào),所以Cells屬性非常適合于在單元 格區(qū)域中循環(huán),如

22、下例中所示。Sub CycleThrough()Dim Counter As IntegerFor Counter = 1 To 20Worksheets(Sheet1).Cells(Counter, 3).Value =CounterNext CounterEnd Sub如果要同時(shí)更改莫個(gè)區(qū)域中所有單元格的屬性(或?qū)⒎椒☉?yīng) 用于該區(qū)域中的所有單元格),建議使用 Range屬性。使用快捷表示法引用單元格可用方括號(hào)將 A1引用樣式或命名區(qū)域括起來(lái),作為Range屬性的快捷方式。這樣就不必鍵入單詞“Range”或使用引號(hào)了,如下例中所示。Sub ClearRange()Worksheets(She

23、et1).A1:B5.ClearContentsEnd SubSub SetValue()MyRange.Value = 30End Sub使用Range對(duì)象引用單元格如果將對(duì)象變量設(shè)置為Range對(duì)象,即可用變量名輕松地操作單元格區(qū)域。以下過(guò)程將創(chuàng)建對(duì)象變量 myRange ,然后將活動(dòng)工作簿中 Sheetl上的區(qū)域 A1:D5賦予該變量。隨后的語(yǔ)句用該變量 名稱(chēng)代替Range對(duì)象,以修改該區(qū)域的屬性。Sub Random()Dim myRange As RangeSet myRange =Worksheets(Sheet1).Range(A1:D5)myRange.Formula = =R

24、AND()”myRange.Font.Bold = TrueEnd Sub引用命名區(qū)域用名稱(chēng)比用 A1樣式記號(hào)更容易標(biāo)識(shí)單元格區(qū)域。 若要命名 選定的單元格區(qū)域,請(qǐng)單擊編輯欄左端的名稱(chēng)框, 鍵入名稱(chēng), 再按Enter。引用命名區(qū)域以下示例引用名為 “MyBook.xls” 的工作簿中 名為 “MyRange” 的區(qū)域。Sub FormatRange()Range(MyBook.xls!MyRange).Font.Italic = TrueEnd Sub以下示例引用名為 “Report.xls”的工作簿中特定于工作表的區(qū)域 “Sheet1!Sales”。Sub FormatSales()Rang

25、e(Report.xlsSheet1!Sales).BorderAround Weight:=xlthinEnd Sub要選定命名區(qū)域,可使用 GoTo方法,該方法將激活工作 簿和工作表,然后選定該區(qū)域。Sub ClearRange()Application.Goto Reference:=MyBook.xls!MyRange”Selection.ClearContentsEnd Sub以下示例顯示對(duì)于活動(dòng)工作簿將如何編寫(xiě)與上例相同的過(guò)程。Sub ClearRange()Application.Goto Reference:=MyRangeSelection.ClearContentsEnd

26、Sub在命名區(qū)域中的單元格上循環(huán)下例用For Each.Next 循環(huán)語(yǔ)句在命名區(qū)域中的每一個(gè)單 元格上循環(huán)。如果該區(qū)域中的任一單元格的值超過(guò)limit的值,就將該單元格的顏色更改為黃色。Sub ApplyColor()Const Limit As Integer = 25For Each c In Range(MyRange)If c.Value Limit Thenc.Interior.ColorIndex = 27End IfNext cEnd Sub引用多個(gè)區(qū)域使用適當(dāng)?shù)姆椒梢院苋菀椎赝瑫r(shí)引用多個(gè)單元格區(qū)域??捎肦ange和Union方法引用任意組合的單元格區(qū)域;用Areas屬性可引用工作表上選定的一組單元格區(qū)域。使用 Range 屬性通過(guò)在兩個(gè)或多個(gè)引用之間插入逗號(hào),可使用Range屬性引用多個(gè)區(qū)域。以下示例清除了 Sheetl上三個(gè)區(qū)域的內(nèi)容。Sub ClearRanges()Worksheets(Sheet1).Range(C5:D9,G9:H16,B14:D18).ClearContentsEnd Sub命名區(qū)域使得用 Range屬性處理多個(gè)區(qū)域更加容易。以下 示例可在所有這三個(gè)命名區(qū)域處于同一工作表時(shí)運(yùn)行。Sub ClearNamed()Range(MyRange, YourRange,HisRange).ClearConten

溫馨提示

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

評(píng)論

0/150

提交評(píng)論