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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

vba移动文件_VBA学习笔记8:工作表操作

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba移动文件_VBA学习笔记8:工作表操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習資源:《Excel VBA從入門到進階》第10集 by藍色幻想

一、Excel工作表的分類

Excel工作表有兩大類,一類是我們平常用的工作表(worksheet),另一類是圖表、宏表等。這兩類的統稱是sheets。

在工作表的標簽頁上右擊—選擇插入,可以看到所有工作表類型。
  • Sheets("A"),名稱為A的excel工作表。
  • workbooks(2),按從左到右的排列順序(包含隱藏工作表),第二個打開的工作簿。
  • ActiveSheet ,正在操作的那個就是ActiveSheet。

二、Excel工作表的操作

  • 判斷A工作表文件是否存在
    • 利用for循環和if語句,查找工作表的名稱是否為"A"。
    • 查到后彈出窗口顯示“A工作表存在”(MsgBox "......"),并退出整段程序停止操作(Exit Sub);
    • 反之,繼續查找直至所有工作表名稱被比對完都沒找到,并彈出窗口顯示“A工作表不存在”。
    Sub s1() Dim X As IntegerFor X = 1 To Sheets.CountIf Sheets(X).Name = "A" ThenMsgBox "A工作表存在"Exit SubEnd If NextMsgBox "A工作表不存在" End Sub

    2. 工作表的插入Sheets.Add

    Sub 新建工作表() Dim sh As WorksheetSet sh = Sheets.Addsh.Name = "模板" sh.Range("a1") = 100End Sub

    上面的代碼是利用工作表變量給工作表賦值新名字,而下面的代碼則是利用ActiveSheet的這一概念來給新工作表重命名。

    Sub 新建工作表()Sheets.Add ActiveSheet.Name = "模板"End Sub

    3. 工作表隱藏和取消隱藏

    是否可視是工作表的一種屬性,隱藏就是更改這一屬性。

    Sub s3()Sheets(2).Visible = False '隱藏第二個工作表,或可寫為Sheets(2).Visible = 0 Sheets(2).Visible = True '取消隱藏第二個工作表,或可寫為Sheets(2).Visible = -1End Sub

    4. 工作表的移動

    Sub s4()Sheets("Sheet2").Move before:=Sheets("sheet1") 'sheet2移動到sheet1前面 Sheets("Sheet1").Move after:=Sheets(Sheets.Count) 'sheet1移動到所有工作表的最后面End Sub

    Sheets.Count 獲取本工作簿工作表的數目

    5. 工作表的復制

    (1)在本工作簿中復制,原表和復制到的表都在同一個工作簿中。

    先來一波不用VBA的正常操作:

    在“模板”工作表標簽頁右擊,選擇“移動或復制”

    勾選“建立副本”,把副本放在“1日”工作表前

    重命名復制的“模板2”工作表為“測試”。Sub s5() '在本工作簿中Sheets("模板").Copy before:=Sheets(1) ActiveSheet.Name = "1日" ActiveSheet.Range("a1") = "測試"End Sub

    (2)把復制的工作表另存為新工作簿。

    相當于在移動或復制工作表時,選擇”將選定工作表移至新工作簿“,然后把新工作簿另存為當前工作簿保存的路徑下,并命名為”1日“工作簿。

    Sub s6() '另存為新工作簿Activesheet.copy '復制工作表 ActiveWorkbook.SaveAs ThisWorkbook.Path & "/1日.xls" '另存為新工作簿 ActiveWorkbook.Close True '關閉工作簿End Sub

    6. 保護工作表

    完整:表達式.Protect(密碼, 形狀,內容,方案,保護用戶界面)

    簡潔:表達式.Protect"密碼"

    Sub s7()Sheets("sheet2").Protect "123"End Sub

    判斷工作表是否添加了保護密碼:

    Sub s8() If Sheets("sheet2").ProtectContents = True ThenMsgBox "工作簿保護了"ElseMsgBox "工作簿沒有添加保護"End IfEnd Sub

    7. 刪除工作表

    Sub s9()Application.DisplayAlerts = FalseSheets("模板").DeleteApplication.DisplayAlerts = TrueEnd Sub

    刪除工作表時,EXCEL會彈出警告,可設置關閉該警告。

    Application.DisplayAlerts = False

    刪除完成后記得打開警告,不然以后都不會彈出警告。

    8. 工作表的選取

    Sub s10()Sheets("sheet2").SelectEnd Sub

    三、練習

    題目1:

    復制“日報表模板”工作表(已隱藏)至本工作簿最后一個位置,復制后的工作表名稱為最后的日期天數+1&"報表"的格式。點擊“生成日報”按鈕就生成一個新的日報表。

    如:當前情況下,沒有任何一天的日報表,則新復制的工作表名稱是“1日報表”,如果再點擊添加時就是1+1=2日報表。如果目前已存在5天的日報表,則復制后的工作表名稱應為“6日報表”

    PS:“日報表模板”工作表要用代碼取消隱藏,復制后要隱藏起來。

    Sub 日報表格式生成()Dim i As IntegerDim ws As WorksheetSet ws = Sheets("日報表模板")ws.Visible = True'顯示"日報表模板"工作表,它是第二個工作表。i = Sheets.Count'數當前工作表的數量。ws.Copy after:=Sheets(Sheets.Count)'復制"日報表模板"工作表,并放在所有工作表的最后。EXCEL會停留在當前工作簿。ActiveSheet.Name = i - 1 & "日報表"'重命名當前工作表ws.Visible = False'隱藏"日報表模板"工作表Sheets(1).Select'回到題目所在工作表 End Sub

    題目2:

    把所有日報表另存為工作簿到本文夾下,工作簿名稱為工作表的名稱。

    Sub 另存報表() Dim i As Integer Dim sh As WorksheetApplication.ScreenUpdating = False'取消屏幕更新,加快代碼運行速度For i = 1 To Sheets.CountIf Sheets(i).Name Like "*日報表" Then'如果工作簿名稱包含“日報表”,則復制該工作表,并另存為當前工作表到當前工作簿路徑下Sheets(i).CopySet sh = ActiveSheetActiveWorkbook.SaveAs ThisWorkbook.Path & "" & sh.Name & ".xls"ActiveWorkbook.Close TrueEnd IfNextApplication.ScreenUpdating = True'恢復屏幕刷新End Sub

    經評論蔡花花同學指出:原來寫的sh.SaveAs ThisWorkbook.Path & "" & sh.Name & ".xls",修改為ActiveWorkbook.SaveAs ThisWorkbook.Path & "" & sh.Name & ".xls",只有工作簿才能使用saveas.

    題目3:

    刪除所有日報表。

    Sub 清除日報表() Dim i As Integer Dim sh As WorksheetFor Each sh In SheetsIf sh.Name Like "*日報表" ThenApplication.DisplayAlerts = Falsesh.DeleteApplication.DisplayAlerts = TrueEnd IfNextEnd Sub

    總結

    以上是生活随笔為你收集整理的vba移动文件_VBA学习笔记8:工作表操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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