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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

《跟着王老师学Excel VBA》的笔记

發布時間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《跟着王老师学Excel VBA》的笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先安利一款VBA的IDE(VBA代碼寶): https://charltsing.lanzous.com/ic9qvzi

一、基礎語法

'創建子程序 sub abc() ..... end sub'程序調用 call abc '注意:不用加括號'定義自變量的類型 Dim i=.... 'For循環 for i = 1 to 5 Step 2 'Step定義步長 ... Next '循環結構(循環五次)'IF判斷語句 If ... then '如果...那么 ... '... else '否則 ... '.... End If '切勿忘記End If'多重判斷 If Range("a" & i) = "理工" Then Range("b" & i) = "LG" ElseIf Range("a" & i) = "文科" Then '再如果...那么 Range("b" & i) = "WK" '.... Else Range("b" & i) = "CJ" End If '使用IF語句,控制For循環 If Range("a" & i) = "" ThenExit For '退出For循環 End If
  • 刪表格時,從下往上刪,可避免錯誤。
  • ElseIf 可多次使用
  • 單元格的表示與操作
'單元格的表示 Range("a1") '表示a1單元格 Range("a" & i) '表示ai單元格 Sheet5.Range("a" & i) '工作表5的ai單元格 Range("a1").value '單元格的值(此屬性為默認值,大多數情況下可省略) Range("a1").Offset(2,3) '由a1單元格下移2行,右移3列 Range("A1048576").End(xlUp).Select '選中空白單元格的上邊界 Range("A1048576").End(xlUp).Row 'A列非空單元格的個數 Range("b1").Resize(2, 4).Select '選中b1為起點的2行4列的區域 Range("c3").EntireColumn.Select '選中c3所在的整列 Range("c3").EntireRow.Select '選中c3所在的整行 Range("a1").EntireColumn.Copy Range("c1") '將a1所在的整列復制到c列 Range("a1:b3").ClearContents '清除A1:B3的內容Sheet1.Cells(1, 2) = 99 '令工作表1的第1行第2列等于99

二、Worksheets(工作表)對象

  • 工作表的選擇(Select)
  • Sheet1.Select '選擇工作表1 Sheets(3).Select '選擇第3個工作表(從左往右數) Sheets("一月").Select '選擇名稱為‘一月’的工作表
  • 插入工作表
  • Sheets.Add '在當前工作表前面插入新sheetSheets.Add after:=Sheet3 '在sheet3后面插入新sheet'在sheet3后面插入100個新sheet Dim i As Integer For i = 1 To 100Sheets.Add after:=sheet3 Next'統計工作簿中所有工作表的數量 Sheet5.Range("a1") = Sheets.Count '在工作表5的A1單元格中輸出工作簿中所有工作表的數量 Sheet5.Range("a1") = Sheet1.Name '在工作表5的A1單元格中輸出工作表1的名稱 Sheet1.Name = "小驢嗷嗷叫" '將工作表1的名稱改為‘小驢嗷嗷叫’'使其總是在最后一張工作表后面插入新表 Sheets.Add after:=Sheets(Sheets.Count)' Dim i As Integer For i = 1 To 100Sheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = i & "月" '總是將最后一張工作表的名稱改為‘i月’ Next
    • ‘Sheets.Count’ 的差異
  • 刪除工作表(Delete)
  • Excel.Application.DisplayAlerts = False '關閉Excel的報錯機制 sheet3.Delete '刪除工作表3 Excel.Application.DisplayAlerts = True '開啟Excel的報錯機制'插入100張工作表 Sheets.Add Count:=100'刪除100張工作表 Dim i As Integer Excel.Application.DisplayAlerts = FalseFor i = 1 To 100Sheets(1).Delete '總是刪除左起第一張工作表Next Excel.Application.DisplayAlerts = True
  • 復制工作表(copy)
  • '復制工作表1,并且將其置于左起第二張工作表之后 Sheet1.Copy after:=Sheets(2)'復制工作表1,并且始終將其置于最后端 Sheet1.Copy after:=Sheets(Sheets.Count)

    三、Workbooks(工作簿)對象

    1.順序循環每個單元格(For Each)

    Dim rng As Range '定義rng為單元格變量 Dim x As Integer '注意x是初始值是 0 !!! For Each rng In Range("a1:a10") 'rng的范圍為A1至A10的每一個單元格x = x + 1rng=x 'x順序給A1至A10的每一個單元格(rng)賦值 Next

    2.順序循環每個工作表

    Dim sht As Worksheet '定義sht為工作表變量 Application.DisplayAlerts = False '關閉警告 For Each sht In Sheets If sht.Name <> "小驢嗷嗷叫" Then '如果單元格名稱不等于“小驢嗷嗷叫”,則sht.Delete '刪除單元格(sht)End If Next Application.DisplayAlerts = True

    3.工作簿的打開、操作、保存與關閉

    Application.ScreenUpdating = False '關閉屏幕刷新 Application.DisplayAlerts = False '關閉警告Workbooks.Open Filename:="d:\小驢\嗷嗷叫.xlsx" '打開EXCEL文件ActiveWorkbook.Sheets(1).Range("a1") = "五一學習VBA" '向當前文件中寫入ActiveWorkbook.Save '保存ActiveWorkbook.Close '關閉 Application.DisplayAlerts = True '開啟警告 Application.ScreenUpdating = True '開啟屏幕刷新

    4.新建工作表

    Workbooks.Add ActiveWorkbook.Sheets(1).Range("a1") = "五一學習VBA" ActiveWorkbook.SaveAs Filename:="d:\小驢\嗷嗷叫.xlsx" '將工作薄保存到 d:\小驢,并命名為 嗷嗷叫.xlsx ActiveWorkbook.Close
    • 注意:執行Sheet1.copy(復制工作表1)時,VBA會自動新建一個工作薄,然后將復制的Sheet1粘貼過去。

    5.拆分工作薄

    Dim sht As Worksheet For Each sht In Sheetssht.Copy '復制工作表ActiveWorkbook.SaveAs Filename:="d:\小驢\" & sht.Name & ".xlsx" '保存ActiveWorkbook.Close '關閉 Next

    6.新建表(避免重名)----第6課

    Dim sht As Worksheet Dim k As IntegerFor i = 1 To 3k = 0 '每次循環后,再重新定義K為0For Each sht In SheetsIf sht.Name = Sheet1.Range("a" & i) Thenk = 1End IfNextIf k = 0 ThenSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheet1.Range("a" & i)End IfNext

    7.VBA的輸入框

    i = InputBox("請輸入你要按哪列分") '將用戶的輸入值賦給i

    8.VBA的消息提示框

    MsgBox "小驢嗷嗷叫"

    七、VBA事件與典型應用案例

    With sheet2.range("a1").range("a3") End With '上下兩端代碼意義相同,此即為With語法的作用 sheet2.range("a1") sheet2.range("a3")

    1.對齊方式

    2.字體格式

    3.工作簿事件

    4.工作表事件


    復試已過,繼續VBA

    八、在VBA中使用公式

    總結

    以上是生活随笔為你收集整理的《跟着王老师学Excel VBA》的笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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