Worksheet对象应用大全(1)-应用基础
Worksheet對象代表Excel工作表,Worksheets集合對象代表Excel工作表的集合。下面,我們來探討Worksheet對象和Worksheets集合的一些屬性和方法的應用。
Worksheet(s)對象應用基礎(chǔ)
[應用1]激活工作表(Activate方法)
使用Activate方法來激活某工作表,例如:
上述代碼使得含有該代碼的工作簿中工作表Sheet1成為活動工作表。
[應用2]增加工作表(Add方法)
使用Worksheets對象的Add方法增加工作表,其語法為:
其中,參數(shù)Before指定一個工作表,新增的工作表將放置在該工作表之前。參數(shù)After指定一個工作表,新增的工作表將放置在該工作表之后。這兩個參數(shù)不能同時使用。若兩個參數(shù)都沒有使用,則新增的工作表會放置在當前工作表之前。
參數(shù)Count指定增加的工作表數(shù)目,默認值為1。參數(shù)Type指定增加的工作表類型,為XlSheetType常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet或xlExcel4IntlMacroSheet,默認值為標準工作表(xlWorksheet)。如果希望基于現(xiàn)有模板插入工作表,則指定該模板的路徑。
[應用3]復制工作表(Copy方法)
使用Copy方法復制指定的工作表,其語法為:
其中,參數(shù)Before和After均可選,用來指定所復制的工作表放置的位置,但不能同時使用這兩個參數(shù)。使用參數(shù)Before將所復制的工作表放置在該參數(shù)指定的工作表之前,同理,使用參數(shù)After將所復制的工作表放置在該參數(shù)指定的工作表之后。
例如,下面的代碼復制當前工作表,并將其放置在所有工作表的末尾:
如果沒有指定參數(shù),那么Excel將新建一個工作簿,該工作簿包含所復制的工作表。
[應用4]移動工作表(Move方法)
使用Move方法將工作表移動到工作簿的指定位置,其語法為:
其語法與Copy方法相同。例如,下面的代碼將工作表Sheet1移到工作表Sheet3的后面:
Worksheets("Sheet1").Move After:=Worksheets("Sheet3")[應用5]獲取或者設(shè)置工作表名稱(Name屬性)
可以使用Name屬性返回指定工作表的名稱,也可以設(shè)置指定工作表的名稱,例如,下面的代碼將工作表Sheet1重命名為“示例”:
下面的過程使用用戶輸入的名稱重命名當前工作表:
Sub ReNameSheet()Dim xStr As String Retry:Err.ClearxStr = InputBox("請輸入工作表的新名稱:" _, "重命名工作表", ActiveSheet.Name)If xStr = "" Then Exit SubOn Error Resume NextActiveSheet.Name = xStrIf Err.Number <> 0 ThenMsgBox Err.Number & " " & Err.DescriptionErr.ClearGoTo RetryEnd IfOn Error GoTo 0'......... End Sub[應用6]使用工作表代碼名稱(CodeName屬性)
工作表對象的CodeName屬性返回工作表代碼名稱,其語法為:
能夠在屬性窗口中設(shè)置工作表代碼名稱。假設(shè)我們在屬性窗口將工作表Sheet1的代碼名稱設(shè)置為Sheet1CodeName,那么下面的兩句代碼是等價的:
Worksheets("Sheet1").Activate Sheet1CodeName.Activate當我們第一次創(chuàng)建工作表時,工作表名稱和代碼名稱是相同的,然而兩個名稱可以各自單獨修改,但是工作表代碼名稱僅能在設(shè)計時修改而不能在運行時修改。
[應用7]刪除工作表(Delete方法)
使用Delete方法刪除指定的工作表,其語法為:
例如,下面的語句刪除工作簿中名為“示例”的工作表:
Worksheets("示例").Delete默認情況下,在刪除工作表時會顯示一個對話框。此時,Delete方法返回一個布爾值,如果用戶單擊“取消”則返回False,單擊“刪除”則返回True。
[應用8]選擇工作表(Select方法)
可以使用Select方法選擇工作表。與Activate方法不同,使用Select方法可以同時選擇多個工作表,例如下面的代碼同時選擇當前工作表以及索引值為1和2的工作表:
其語法為:
工作表對象.Select(Replace)其中,參數(shù)Replace可選,設(shè)置為True時使用指定的工作表的選區(qū)代替當前選擇,設(shè)置False時擴展當前所選內(nèi)容以包括以前選擇的對象和指定的對象。
[應用9]選擇工作表(Previous屬性和Next屬性)
使用工作表對象的Previous屬性選擇指定工作表之前的工作表,例如:
如果當前工作表是第一個工作表,則使用Previous屬性會出錯。
使用工作表對象的Next屬性選擇指定工作表之后的工作表,例如:
如果當前工作表是最后一個工作表,則使用Next屬性會出錯。
[應用10]獲取工作表數(shù)(Count屬性)
使用集合對象的Count屬性來獲取工作簿中工作表的數(shù)目。例如下面的兩段代碼:
在一個包含圖表工作表的工作簿中運行上述兩段代碼,將會得出不同的結(jié)果,原因是對于Sheets集合來講,工作表包含圖表工作表。應注意Worksheets集合與Sheets集合的區(qū)別。
[應用11]保存工作表(SaveAs方法)
使用SaveAs方法將更改后的工作表保存到另一個文件中,其語法為:
其中,參數(shù)FileName用來指定用來保存文件的路徑及文件名,若沒有包括路徑,則保存在當前文件夾中。參數(shù)FileFormat指定所保存的文件格式,為XlFileFormat常量之一。參數(shù)Password指定在保存文件時用于保護文件的密碼,最大可以達到15個字符,區(qū)分大小寫。參數(shù)WriteResPassword指定文件的寫保護密碼,如果打開文件時沒有輸入寫保護密碼,那么該文件將只讀。如果將參數(shù)ReadOnlyRecommended設(shè)置為True,那么在打開文件時顯示一條消息,提示該文件以只讀方式打開。將參數(shù)CreateBackup設(shè)置為True,創(chuàng)建備份文件。將參數(shù)AddToMru設(shè)置為True,添加工作簿到最近使用的文件列表中,默認為False。
[應用12]隱藏工作表(Visible屬性)
可以通過將工作表對象的Visible屬性設(shè)置為True或False,來控制該工作表是否可見。例如,下面的代碼隱藏工作表Sheet1:
當然,也可以將Visible屬性設(shè)置為XlSheetVisibility值:xlSheetVisible、xlSheetHidden、xlSheetVeryHidden,來控制工作表是否可見。其中,xlSheetVisible表示顯示工作表,xlSheetHidden表示隱藏工作表,但可以通過菜單命令顯示工作表,xlSheetVeryHidden表示隱藏工作表,只能通過代碼將Visible屬性設(shè)置為True來顯示工作表,此時用戶無法使工作表可見。
下面的代碼新建一張工作表,然后將其Visible屬性設(shè)為xlVeryHidden。要引用該工作表,可使用其對象變量newSheet。
下面的代碼取消隱藏工作簿中所有工作表。
Sub UnhideAllWorksheets()Dim ws As WorksheetFor Each ws In ThisWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsSet ws = Nothing End Sub[應用13]保護工作表(Protect方法)
使用Protect方法保護工作表,以防止被修改。其語法為:
其中,參數(shù)Password指定用于保護工作表的密碼,區(qū)分大小寫。設(shè)置參數(shù)DrawingObjects為True以保護形狀,默認值為False。設(shè)置參數(shù)Contents為True,以保護內(nèi)容,對于圖表則會保護整個圖表,對于工作表則會保護鎖定的單元格,默認值是True。參數(shù)Scenarios設(shè)置為True以保護方案,此參數(shù)僅對工作表有效,默認值是True。
Protect方法允許單獨保護單元格以免被用戶和代碼修改。特別地,如果參數(shù)UserInterfaceOnly設(shè)置為True,那么用戶不能修改工作表,但能夠通過代碼修改。相反,如果參數(shù)UserInterfaceOnly設(shè)置為False(默認值),那么用戶和代碼都不能修改工作表。
注意,當保護工作表時,如果參數(shù)UserInterfaceOnly設(shè)置為True,然后又保存工作簿,那么再次打開該工作簿時,整張工作表將被完全保護,而不僅僅保護用戶界面。要在打開工作簿后重新啟用用戶界面保護,必須再次將UserInterfaceOnly參數(shù)設(shè)為True并應用Protect方法。
[應用14]是否僅啟用用戶界面保護(ProtectionMode)
如果開啟了用戶界面保護,則ProtectionMode屬性返回True。默認值為False。
[應用15]取消密碼保護(Unprotect方法)
使用Unprotect方法取消工作表的密碼保護,如果工作表沒有密碼保護則無效。其語法為:
其中,參數(shù)Password代表用來保護工作表的密碼。如果工作表有密碼保護,而我們忽略此參數(shù),那么Excel將提示用戶輸入密碼。
[示例1]設(shè)置密碼保護工作表
運行上述代碼后,當前工作表中將不允許編輯,除非撤銷工作表保護。
[示例2]撤銷工作表保護
運行上述代碼后,如果原保護的工作表設(shè)置有密碼,則要求輸入密碼。
[示例3]保護當前工作簿中的所有工作表
[示例4]撤銷對當前工作簿中所有工作表的保護
Sub UnprotectAllWorkSheets()On Error Resume NextDim ws As WorksheetDim myPassword As StringmyPassword = InputBox("請輸入您的密碼" & vbCrLf & _"(不輸入表示無密碼)", "輸入密碼")For Each ws In ThisWorkbook.Worksheetsws.Unprotect (myPassword)Next ws End Sub[示例5]僅能編輯未鎖定的單元格
Sub OnlyEditUnlockedCells()Sheets("Sheet1").EnableSelection = xlUnlockedCellsActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub運行上述代碼后,在當前工作表中將只能對未鎖定的單元格進行編輯,而其它單元格將不能編輯。未鎖定的單元格是指在選擇菜單“格式——單元格”命令后在彈出的對話框中的“保護”選項卡中,未選中“鎖定”復選框的單元格或單元格區(qū)域。
[應用16]打印預覽工作表(PrintPreview方法)
使用PrintPreview方法完成打印預覽功能,即按對象打印后的外觀效果顯示對象的預覽。其語法為:
其中,參數(shù)EnableChanges指定用戶是否可更改邊距和打印預覽中可用的其他頁面設(shè)置選項。
[應用17]打印工作表(Print方法)
使用Print方法打印工作表,其語法為:
其中,參數(shù)From指定打印的第一頁的頁碼,參數(shù)To指定打印的最后一頁的頁碼,如果忽略則打印完整的對象。參數(shù)Copies指定打印的份數(shù),默認值為1。參數(shù)Preview為True,Excel將在打印對象之前調(diào)用打印預覽,如果為False(默認值),則立即打印對象。參數(shù)ActivePrinter設(shè)置活動打印機的名稱。如果設(shè)置參數(shù)PrintToFile為True,則打印到文件,此時如果沒有指定參數(shù)PrToFileName,Excel將提示用戶輸入要使用的輸出文件的文件名。參數(shù)Collate設(shè)置為True,逐份打印多份副本。參數(shù)IgnorePrintAreas設(shè)置為True,則忽略打印區(qū)域并打印整個對象。
[應用18]顯示數(shù)據(jù)記錄單(ShowDataForm方法)
使用ShowDataForm方法顯示與指定工作表相關(guān)聯(lián)的數(shù)據(jù)記錄單,其語法為:
注意,宏執(zhí)行到顯示數(shù)據(jù)記錄單語句時運行會暫停。關(guān)閉數(shù)據(jù)記錄單后,宏將從ShowDataForm方法的下一語句開始繼續(xù)執(zhí)行。如果存在自定義數(shù)據(jù)記錄單,則本方法將運行此記錄單。
在Excel 2007的功能區(qū)中并沒有顯示記錄單命令,該命令被隱藏,因此可以使用ShowDataForm方法調(diào)出記錄單。
[應用19]獲取工作表中已使用的區(qū)域(UsedRange屬性)
使用工作表對象的UsedRange屬性返回工作表中已使用的區(qū)域。該屬性返回Range對象,代表當前已使用的單元格組成的矩形區(qū)域,是非常有用的屬性。其語法為:
注意,有時雖然徹底清除了某單元格,但該屬性仍返回包含該單元格的區(qū)域。
[應用20]在工作表中粘貼內(nèi)容(PasteSpecial方法)
使用PasteSpecial方法以指定格式將剪貼板中的內(nèi)容粘貼到工作表上。可使用本方法從其他應用程序中粘貼數(shù)據(jù),或以特定格式粘貼數(shù)據(jù)。其語法為:
經(jīng)常使用的語法為:
工作表對象.PasteSpecial(Format)其中,參數(shù)Format指定要粘貼的數(shù)據(jù)格式的字符串。
例如,下面的代碼將剪貼板中的Microsoft Word文檔對象粘貼到工作表Sheet1上的單元格D1中:
注意,在使用PastSpecial方法之前,必須選擇目標區(qū)域。該方法可能會修改工作表的選定區(qū)域。
[應用21]計算工作表(Calculate方法)
可以使用Calculate方法計算指定的工作表、工作表中的單元格區(qū)域或者整個工作簿。例如,下面的代碼計算工作簿中的第一張工作表:
[應用22]重新計算工作表(EnableCalculation屬性)
當EnableCalculation屬性設(shè)置為True時,在必要情況下Excel自動重新計算工作表。否則,必須請求重新計算。
當該屬性第一次被設(shè)置為True時,Excel將重新計算工作表。
[應用23]控制自動篩選下拉箭頭(AutoFilterMode屬性)
如果當前在工作表中顯示自動篩選下拉箭頭,則AutoFilterMode屬性為True。我們可以將該屬性設(shè)置為False,移除箭頭。然而,不能將該屬性設(shè)置為True。要顯示自動篩選下拉箭頭,使用AutoFilter方法。
[應用24]工作表是否處于篩選模式(FilterMode屬性)
如果工作表處于篩選模式,則FilterMode屬性為True。因此,如果顯示了自動篩選下拉箭頭但沒有發(fā)生篩選,那么AutoFilterMode屬性為True而FilterMode屬性為False。一旦實際上執(zhí)行了篩選,那么FilterMode屬性就為True。FilterMode屬性指明是否由于篩選而隱藏了行。
[應用25]轉(zhuǎn)換名稱(Evaluate方法)
使用工作表對象的Evaluate方法將名稱轉(zhuǎn)換為對象或值。
[應用26]設(shè)置工作表滾動區(qū)域(ScrollArea屬性)
使用ScrollArea屬性返回或者設(shè)置允許滾動的區(qū)域,用戶不能選擇滾動區(qū)域之外的區(qū)域。設(shè)置時,必須為A1樣式的單元格引用。例如,下面的代碼將單元格區(qū)域A1:C50設(shè)置為允許滾動區(qū)域,僅能夠在單元格區(qū)域A1:C50范圍內(nèi)滾動或選擇單元格:
要移除單元格滾動或選擇的限制,只須將該屬性的值設(shè)置為空,例如:
Worksheets(1).ScrollArea = ""注意,設(shè)置滾動區(qū)域與凍結(jié)窗格無關(guān)。
[應用27]為工作表設(shè)置背景(SetBackgroundPicture方法)
使用SetBackgroundPicture方法為工作表設(shè)置背景圖片,其語法為:
其中,參數(shù)FileName為用于背景的圖片路徑和名稱。例如,下面的代碼為第一張工作表設(shè)置背景圖片:
Worksheets(1).SetBackgroundPicture "c:\graphics\watermark.gif"總結(jié)
以上是生活随笔為你收集整理的Worksheet对象应用大全(1)-应用基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去除控制 专治 极域电子教室 红蜘蛛 l
- 下一篇: FSB与QPI的区别