日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Worksheet对象应用大全(1)-应用基础

發布時間:2023/12/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Worksheet对象应用大全(1)-应用基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Worksheet對象代表Excel工作表,Worksheets集合對象代表Excel工作表的集合。下面,我們來探討Worksheet對象和Worksheets集合的一些屬性和方法的應用。

Worksheet(s)對象應用基礎

[應用1]激活工作表(Activate方法)
使用Activate方法來激活某工作表,例如:

ThisWorkbook.Worksheets("Sheet1").Activate

上述代碼使得含有該代碼的工作簿中工作表Sheet1成為活動工作表。
[應用2]增加工作表(Add方法)
使用Worksheets對象的Add方法增加工作表,其語法為:

Worksheets.Add(Before,After,Count,Type)

其中,參數Before指定一個工作表,新增的工作表將放置在該工作表之前。參數After指定一個工作表,新增的工作表將放置在該工作表之后。這兩個參數不能同時使用。若兩個參數都沒有使用,則新增的工作表會放置在當前工作表之前。
參數Count指定增加的工作表數目,默認值為1。參數Type指定增加的工作表類型,為XlSheetType常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet或xlExcel4IntlMacroSheet,默認值為標準工作表(xlWorksheet)。如果希望基于現有模板插入工作表,則指定該模板的路徑。
[應用3]復制工作表(Copy方法)
使用Copy方法復制指定的工作表,其語法為:

工作表對象.Copy(Before,After)

其中,參數Before和After均可選,用來指定所復制的工作表放置的位置,但不能同時使用這兩個參數。使用參數Before將所復制的工作表放置在該參數指定的工作表之前,同理,使用參數After將所復制的工作表放置在該參數指定的工作表之后。
例如,下面的代碼復制當前工作表,并將其放置在所有工作表的末尾:

ActiveSheet.Copy After:=Worksheets(Worksheets.Count)

如果沒有指定參數,那么Excel將新建一個工作簿,該工作簿包含所復制的工作表。
[應用4]移動工作表(Move方法)
使用Move方法將工作表移動到工作簿的指定位置,其語法為:

工作表對象.Move(Before,After)

其語法與Copy方法相同。例如,下面的代碼將工作表Sheet1移到工作表Sheet3的后面:

Worksheets("Sheet1").Move After:=Worksheets("Sheet3")

[應用5]獲取或者設置工作表名稱(Name屬性)
可以使用Name屬性返回指定工作表的名稱,也可以設置指定工作表的名稱,例如,下面的代碼將工作表Sheet1重命名為“示例”:

Worksheets("Sheet1").Name = "示例"

下面的過程使用用戶輸入的名稱重命名當前工作表:

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屬性返回工作表代碼名稱,其語法為:

工作表對象.CodeName

能夠在屬性窗口中設置工作表代碼名稱。假設我們在屬性窗口將工作表Sheet1的代碼名稱設置為Sheet1CodeName,那么下面的兩句代碼是等價的:

Worksheets("Sheet1").Activate Sheet1CodeName.Activate

當我們第一次創建工作表時,工作表名稱和代碼名稱是相同的,然而兩個名稱可以各自單獨修改,但是工作表代碼名稱僅能在設計時修改而不能在運行時修改。
[應用7]刪除工作表(Delete方法)
使用Delete方法刪除指定的工作表,其語法為:

工作表對象.Delete

例如,下面的語句刪除工作簿中名為“示例”的工作表:

Worksheets("示例").Delete

默認情況下,在刪除工作表時會顯示一個對話框。此時,Delete方法返回一個布爾值,如果用戶單擊“取消”則返回False,單擊“刪除”則返回True。
[應用8]選擇工作表(Select方法)
可以使用Select方法選擇工作表。與Activate方法不同,使用Select方法可以同時選擇多個工作表,例如下面的代碼同時選擇當前工作表以及索引值為1和2的工作表:

Worksheets(1).Select (False) Worksheets(2).Select (False)

其語法為:

工作表對象.Select(Replace)

其中,參數Replace可選,設置為True時使用指定的工作表的選區代替當前選擇,設置False時擴展當前所選內容以包括以前選擇的對象和指定的對象。
[應用9]選擇工作表(Previous屬性和Next屬性)
使用工作表對象的Previous屬性選擇指定工作表之前的工作表,例如:

Sub PreviousSheet()If ActiveSheet.Index <> 1 ThenMsgBox "選取當前工作簿中當前工作表的前一個工作表"ActiveSheet.Previous.ActivateElseMsgBox "已到第一個工作表"End If End Sub

如果當前工作表是第一個工作表,則使用Previous屬性會出錯。
使用工作表對象的Next屬性選擇指定工作表之后的工作表,例如:

Sub NextSheet()If ActiveSheet.Index <> Worksheets.Count ThenMsgBox "選取當前工作簿中當前工作表的下一個工作表"ActiveSheet.Next.ActivateElseMsgBox "已到最后一個工作表"End If End Sub

如果當前工作表是最后一個工作表,則使用Next屬性會出錯。
[應用10]獲取工作表數(Count屬性)
使用集合對象的Count屬性來獲取工作簿中工作表的數目。例如下面的兩段代碼:

Sub WorksheetNum()Dim i As Longi = Worksheets.CountMsgBox "當前工作簿的工作表數為:" & Chr(10) & i End SubSub WorksheetNum()Dim i As Longi = Sheets.CountMsgBox "當前工作簿的工作表數為:" & Chr(10) & i End Sub

在一個包含圖表工作表的工作簿中運行上述兩段代碼,將會得出不同的結果,原因是對于Sheets集合來講,工作表包含圖表工作表。應注意Worksheets集合與Sheets集合的區別。
[應用11]保存工作表(SaveAs方法)
使用SaveAs方法將更改后的工作表保存到另一個文件中,其語法為:

工作表對象.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodepage, TextVisualLayout, Local)

其中,參數FileName用來指定用來保存文件的路徑及文件名,若沒有包括路徑,則保存在當前文件夾中。參數FileFormat指定所保存的文件格式,為XlFileFormat常量之一。參數Password指定在保存文件時用于保護文件的密碼,最大可以達到15個字符,區分大小寫。參數WriteResPassword指定文件的寫保護密碼,如果打開文件時沒有輸入寫保護密碼,那么該文件將只讀。如果將參數ReadOnlyRecommended設置為True,那么在打開文件時顯示一條消息,提示該文件以只讀方式打開。將參數CreateBackup設置為True,創建備份文件。將參數AddToMru設置為True,添加工作簿到最近使用的文件列表中,默認為False。
[應用12]隱藏工作表(Visible屬性)
可以通過將工作表對象的Visible屬性設置為True或False,來控制該工作表是否可見。例如,下面的代碼隱藏工作表Sheet1:

Worksheets("Sheet1").Visible = False

當然,也可以將Visible屬性設置為XlSheetVisibility值:xlSheetVisible、xlSheetHidden、xlSheetVeryHidden,來控制工作表是否可見。其中,xlSheetVisible表示顯示工作表,xlSheetHidden表示隱藏工作表,但可以通過菜單命令顯示工作表,xlSheetVeryHidden表示隱藏工作表,只能通過代碼將Visible屬性設置為True來顯示工作表,此時用戶無法使工作表可見。
下面的代碼新建一張工作表,然后將其Visible屬性設為xlVeryHidden。要引用該工作表,可使用其對象變量newSheet。

Set NewSheet = Worksheets.Add NewSheet.Visible = xlVeryHidden NewSheet.Range("A1:D4").Formula = "=RAND()"

下面的代碼取消隱藏工作簿中所有工作表。

Sub UnhideAllWorksheets()Dim ws As WorksheetFor Each ws In ThisWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsSet ws = Nothing End Sub

[應用13]保護工作表(Protect方法)
使用Protect方法保護工作表,以防止被修改。其語法為:

工作表對象.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

其中,參數Password指定用于保護工作表的密碼,區分大小寫。設置參數DrawingObjects為True以保護形狀,默認值為False。設置參數Contents為True,以保護內容,對于圖表則會保護整個圖表,對于工作表則會保護鎖定的單元格,默認值是True。參數Scenarios設置為True以保護方案,此參數僅對工作表有效,默認值是True。
Protect方法允許單獨保護單元格以免被用戶和代碼修改。特別地,如果參數UserInterfaceOnly設置為True,那么用戶不能修改工作表,但能夠通過代碼修改。相反,如果參數UserInterfaceOnly設置為False(默認值),那么用戶和代碼都不能修改工作表。
注意,當保護工作表時,如果參數UserInterfaceOnly設置為True,然后又保存工作簿,那么再次打開該工作簿時,整張工作表將被完全保護,而不僅僅保護用戶界面。要在打開工作簿后重新啟用用戶界面保護,必須再次將UserInterfaceOnly參數設為True并應用Protect方法。
[應用14]是否僅啟用用戶界面保護(ProtectionMode)
如果開啟了用戶界面保護,則ProtectionMode屬性返回True。默認值為False。
[應用15]取消密碼保護(Unprotect方法)
使用Unprotect方法取消工作表的密碼保護,如果工作表沒有密碼保護則無效。其語法為:

工作表對象.Unprotect(Password)

其中,參數Password代表用來保護工作表的密碼。如果工作表有密碼保護,而我們忽略此參數,那么Excel將提示用戶輸入密碼。
[示例1]設置密碼保護工作表

Sub ProtectSheet()MsgBox "保護當前工作表并設定密碼"ActiveSheet.Protect Password:="fanjy" End Sub

運行上述代碼后,當前工作表中將不允許編輯,除非撤銷工作表保護。
[示例2]撤銷工作表保護

Sub UnprotectSheet()MsgBox "撤銷當前工作表保護"ActiveSheet.Unprotect End Sub

運行上述代碼后,如果原保護的工作表設置有密碼,則要求輸入密碼。
[示例3]保護當前工作簿中的所有工作表

Sub ProtectAllWorkSheets()On Error Resume NextDim ws As WorksheetDim myPassword As StringmyPassword = InputBox("請輸入您的密碼" & vbCrLf & _"(不輸入表明無密碼)" & vbCrLf & vbCrLf & _"確保您沒有忘記密碼!", "輸入密碼")For Each ws In ThisWorkbook.Worksheetsws.Protect (myPassword)Next ws End Sub

[示例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

運行上述代碼后,在當前工作表中將只能對未鎖定的單元格進行編輯,而其它單元格將不能編輯。未鎖定的單元格是指在選擇菜單“格式——單元格”命令后在彈出的對話框中的“保護”選項卡中,未選中“鎖定”復選框的單元格或單元格區域。
[應用16]打印預覽工作表(PrintPreview方法)
使用PrintPreview方法完成打印預覽功能,即按對象打印后的外觀效果顯示對象的預覽。其語法為:

工作表對象.PrintPreview(EnableChanges)

其中,參數EnableChanges指定用戶是否可更改邊距和打印預覽中可用的其他頁面設置選項。
[應用17]打印工作表(Print方法)
使用Print方法打印工作表,其語法為:

工作表對象.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)

其中,參數From指定打印的第一頁的頁碼,參數To指定打印的最后一頁的頁碼,如果忽略則打印完整的對象。參數Copies指定打印的份數,默認值為1。參數Preview為True,Excel將在打印對象之前調用打印預覽,如果為False(默認值),則立即打印對象。參數ActivePrinter設置活動打印機的名稱。如果設置參數PrintToFile為True,則打印到文件,此時如果沒有指定參數PrToFileName,Excel將提示用戶輸入要使用的輸出文件的文件名。參數Collate設置為True,逐份打印多份副本。參數IgnorePrintAreas設置為True,則忽略打印區域并打印整個對象。
[應用18]顯示數據記錄單(ShowDataForm方法)
使用ShowDataForm方法顯示與指定工作表相關聯的數據記錄單,其語法為:

工作表對象.ShowDataForm

注意,宏執行到顯示數據記錄單語句時運行會暫停。關閉數據記錄單后,宏將從ShowDataForm方法的下一語句開始繼續執行。如果存在自定義數據記錄單,則本方法將運行此記錄單。
在Excel 2007的功能區中并沒有顯示記錄單命令,該命令被隱藏,因此可以使用ShowDataForm方法調出記錄單。
[應用19]獲取工作表中已使用的區域(UsedRange屬性)
使用工作表對象的UsedRange屬性返回工作表中已使用的區域。該屬性返回Range對象,代表當前已使用的單元格組成的矩形區域,是非常有用的屬性。其語法為:

工作表對象.UsedRange

注意,有時雖然徹底清除了某單元格,但該屬性仍返回包含該單元格的區域。
[應用20]在工作表中粘貼內容(PasteSpecial方法)
使用PasteSpecial方法以指定格式將剪貼板中的內容粘貼到工作表上。可使用本方法從其他應用程序中粘貼數據,或以特定格式粘貼數據。其語法為:

工作表對象.PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, NoHTMLFormatting)

經常使用的語法為:

工作表對象.PasteSpecial(Format)

其中,參數Format指定要粘貼的數據格式的字符串。
例如,下面的代碼將剪貼板中的Microsoft Word文檔對象粘貼到工作表Sheet1上的單元格D1中:

Worksheets("Sheet1").Range("D1").Select ActiveSheet.PasteSpecial Format:= _ "Microsoft Word 12.0 Document Object"

注意,在使用PastSpecial方法之前,必須選擇目標區域。該方法可能會修改工作表的選定區域。
[應用21]計算工作表(Calculate方法)
可以使用Calculate方法計算指定的工作表、工作表中的單元格區域或者整個工作簿。例如,下面的代碼計算工作簿中的第一張工作表:

Worksheets(1).Calculate

[應用22]重新計算工作表(EnableCalculation屬性)
當EnableCalculation屬性設置為True時,在必要情況下Excel自動重新計算工作表。否則,必須請求重新計算。
當該屬性第一次被設置為True時,Excel將重新計算工作表。
[應用23]控制自動篩選下拉箭頭(AutoFilterMode屬性)
如果當前在工作表中顯示自動篩選下拉箭頭,則AutoFilterMode屬性為True。我們可以將該屬性設置為False,移除箭頭。然而,不能將該屬性設置為True。要顯示自動篩選下拉箭頭,使用AutoFilter方法。
[應用24]工作表是否處于篩選模式(FilterMode屬性)
如果工作表處于篩選模式,則FilterMode屬性為True。因此,如果顯示了自動篩選下拉箭頭但沒有發生篩選,那么AutoFilterMode屬性為True而FilterMode屬性為False。一旦實際上執行了篩選,那么FilterMode屬性就為True。FilterMode屬性指明是否由于篩選而隱藏了行。
[應用25]轉換名稱(Evaluate方法)
使用工作表對象的Evaluate方法將名稱轉換為對象或值。
[應用26]設置工作表滾動區域(ScrollArea屬性)
使用ScrollArea屬性返回或者設置允許滾動的區域,用戶不能選擇滾動區域之外的區域。設置時,必須為A1樣式的單元格引用。例如,下面的代碼將單元格區域A1:C50設置為允許滾動區域,僅能夠在單元格區域A1:C50范圍內滾動或選擇單元格:

Worksheets(1).ScrollArea = "A1:C50"

要移除單元格滾動或選擇的限制,只須將該屬性的值設置為空,例如:

Worksheets(1).ScrollArea = ""

注意,設置滾動區域與凍結窗格無關。
[應用27]為工作表設置背景(SetBackgroundPicture方法)
使用SetBackgroundPicture方法為工作表設置背景圖片,其語法為:

工作表對象.SetBackgroundPicture(FileName)

其中,參數FileName為用于背景的圖片路徑和名稱。例如,下面的代碼為第一張工作表設置背景圖片:

Worksheets(1).SetBackgroundPicture "c:\graphics\watermark.gif"

總結

以上是生活随笔為你收集整理的Worksheet对象应用大全(1)-应用基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。