精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Excel VBA入門(6)

1. 激活工作表 Active

  1. Dim ws As Worksheet
  2. Set ws = Application.WorkBooks(1).Worksheets(2)
  3. ws.Activate
激活了第一個工作簿的Sheet2

2. 復制工作表 Copy([before], [after])

將當前工作表復制一份, 名字為'當前工作表名字(2)'

  1. Dim ws As Worksheet
  2. Set ws = Application.ActiveWorkbook.Worksheets(1)
  3. ws.Copy after:=Worksheets(1)
該代碼將Sheet1的內容拷貝到新表Sheet1(2)

如果不指定before或after, 同樣會生成一個新表, 注意, before和after不能同時使用

另外, 工作表的復制可以跨工作簿之間進行

  1. Dim wbSrc As Workbook
  2. Dim wbDes As Workbook
  3. Dim ws As Worksheet
  4. Set wbSrc = Application.WorkBooks(1)
  5. Set wbDes = Application.WorkBooks.Add
  6. Set ws = wbSrc.Worksheets(1)
  7. ws.Copy after:=wbDes.Worksheets(1)
將當前工作表的內容復制到新工作簿的第2個工作表

3. 將剪貼板的內容粘貼到工作表Paste([destination], [link])

  1. Dim ws As Worksheet
  2. Set ws = Application.ActiveWorkbook.ActiveSheet
  3. ws.range('A1:A3').Copy
  4. ws.Paste destination:=ws.range('F1:F3')

先將A1:A3的內容復制到剪貼板, 然后利用Paste方法, 粘貼到F1:F3區域, 亦或者直接:

  1. ws.range('A1:A3').Copy
  2. ws.Paste destination:=ws.range('F1')

Worksheet事件:

和Workbook的事件類似, 在'工程資源管理器'中, 雙擊一個工作表, 在右邊代碼區上面選擇Worksheet, 然后再選擇相應的事件


選擇一個事件會自動列出事件代碼

常用的操作工作表的方法

1. 訪問工作表

兩種方式: a. 根據索引號(從1開始) b.根據工作表名稱

  1. Dim wb As Workbook
  2. Dim ws As Worksheet
  3. Dim wsCount As Integer
  4. Dim i As Integer
  5. Dim sheetnames() As String
  6. Set wb = Application.WorkBooks(1)
  7. wb.Activate
  8. wsCount = wb.Worksheets.Count
  9. ReDim sheetnames(1 To wsCount)
  10. PrintInfo '當前工作簿共包含' & CStr(wsCount) & '個工作表'
  11. For i = 1 To wsCount
  12. Set ws = wb.Worksheets(i)
  13. Debug.Print Space(5) & ws.name
  14. sheetnames(i) = ws.name
  15. Next
  16. Debug.Print
  17. Debug.Print '使用Sheets集合按名稱訪問工作表'
  18. For i = 1 To wsCount
  19. Set ws = wb.Worksheets(sheetnames(i))
  20. Debug.Print Space(5) & ws.name
  21. Next
  22. Set ws = Nothing
  23. Set wb = Nothing

例子比較簡單, 說明一下Space(5)的意思是五個空格, CStr()是把參數轉換為字符串

核心就是 Worksheets(1) 和Worksheets('Sheet1') 是等效的 (默認沒有改工作表名字而且沒有移動工作表順序的情況下)

另外在遍歷工作表的時候使用的是Worksheets屬性, 如果使用Sheets屬性則需要判斷工作表的類型是普通工作表還是圖表工作表

根據Type屬性判斷:   If ws.Type = xlWorksheet Then 

2. 判斷工作表是否存在

判斷工作表是否存在就是用指定的名稱遍歷所有工作表, 沒什么難點

  1. Dim wb As Workbook
  2. Dim ws As Worksheet
  3. Dim i As Integer
  4. Dim count As Integer
  5. Dim flag As Boolean
  6. Dim findName As String
  7. findName = 'Sheet7'
  8. Set wb = Application.ActiveWorkbook
  9. count = wb.Worksheets.count
  10. flag = False
  11. For i = 1 To count
  12. If wb.Worksheets(i).name = findName Then
  13. flag = True
  14. Exit For
  15. End If
  16. Next
  17. If flag Then
  18. MsgBox '存在' & findName
  19. Else
  20. MsgBox '不存在' & findName
  21. End If
  22. Set ws = Nothing
  23. Set wb = Nothing
這段代碼不用解釋了

3.新建工作表 Application.ActiveWorkbook.Worksheets.Add([Before], [After], [Count], [Type]) As Object

新建工作表和之前的新建工作簿類似

  1. Dim ws As Worksheet
  2. Set ws = Worksheets.Add
  3. Debug.Print ws.name
完整寫法Set ws = Application.ActiveWorkbook.Worksheets.Add(before:=Worksheets(8), count:=2, Type:=xlWorksheet)

意思是在第8個表前加入兩個工作表

同樣的Before和After不能同時使用

4. 重命名工作表 

直接設置工作表的name屬性即可, 但是要先判斷該名稱是否已經存在, 否則會報錯

為了簡單說明, 這里就不作判斷了

  1. Dim ws As Worksheet
  2. Set ws = Application.WorkBooks(1).Worksheets(1)
  3. ws.name = 'SheeT1'
將'Sheet1'重命名為了'SheeT1'

5. 移動工作表

  1. Dim wb As Workbook
  2. Dim ws As Worksheet
  3. Set wb = Application.WorkBooks(1)
  4. wb.Activate
  5. Set ws = wb.Worksheets(1)
  6. ws.Move after:=ws.Next
  7. Set wb = Nothing
  8. Set ws = Nothing
道理和復制一樣, ws.Move after:=ws.Next 將第一個工作表向后移動一次

同理, 移動也可以跨工作簿進行

  1. Dim wbSrc As Workbook
  2. Dim wbDes As Workbook
  3. Dim ws As Worksheet
  4. Set wbSrc = Application.WorkBooks(1)
  5. Set wbDes = Application.WorkBooks.Add
  6. Set ws = wbSrc.Worksheets(1)
  7. ws.Move after:=wbDes.Worksheets(1)
將當前工作簿的Sheet1 移動到新的工作簿的Sheet1后

6. 刪除工作表

注意: 刪除前請保存重要數據

  1. Dim wb As Workbook
  2. Dim ws As Worksheet
  3. Dim sheetName As String
  4. Dim count As Integer
  5. Set wb = Application.WorkBooks(1)
  6. Set ws = wb.Worksheets(1)
  7. sheetName = ws.name
  8. count = wb.Worksheets.count
  9. If count > 1 Then
  10. Application.DisplayAlerts = False
  11. ws.Delete
  12. MsgBox '成功刪除' & sheetName, vbOKOnly, '刪除工作表'
  13. Application.DisplayAlerts = True
  14. Else
  15. MsgBox '工作表' & sheetName & '是工作簿的最后一張表, 無法刪除', vbCritical, '刪除工作表'
  16. End If
  17. Set wb = Nothing
  18. Set ws = Nothing






本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA合并多工作簿中多張同構工作表數據
【VBA編程】09.使用Excle集合對象
多表合并,你要的全在這里了,收藏好了!
Python操作Excel的一些基本程序代碼
VBA|幾段實用代碼
公式轉換成數值格式
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 抚远县| 承德县| 宣城市| 宝应县| 巫溪县| 晋城| 南岸区| 日照市| 中西区| 泰和县| 会宁县| 灯塔市| 安阳市| 西昌市| 灵武市| 卢氏县| 齐河县| 仪陇县| 阿坝县| 迭部县| 横山县| 高台县| 迁西县| 怀仁县| 芮城县| 安新县| 襄汾县| 彰化市| 沧州市| 贵南县| 台东县| 曲靖市| 洪湖市| 黄浦区| 奈曼旗| 青海省| 长治县| 轮台县| 安康市| 赤壁市| 彰武县|