最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Excel VBA 入門學(xué)習(xí)總結(jié)

2019-04-02 17:42 作者:凌霄百科  | 我要投稿

Excel VBA 入門學(xué)習(xí)總結(jié)

編輯工具欄:屬性/方法列表、常數(shù)列表、快速信息、參數(shù)信息、自動完成關(guān)鍵字、縮進、凸出、切換斷點、設(shè)置注釋塊、解除注釋塊、切換書簽、上一個/下一個書簽、清除書簽。

調(diào)試工具欄:設(shè)計模式、運行子過程/用戶窗體、中斷、重新設(shè)置、切換斷點、逐語句、逐過程、跳出、本地窗口、立即窗口、監(jiān)視窗口、快速監(jiān)視、調(diào)用堆棧。

MsgBox ("彈窗一個提升窗口")

需要查看代碼幫助說明,可將光標定位至查看語句位置,點擊【F1】鍵,在聯(lián)網(wǎng)狀態(tài)下可打開對應(yīng)VBA幫助文檔。

Dim 變量名 As 數(shù)據(jù)類型

Dim str1 As String????定義字符串變量str1

Dim str2 As String*10????定義字符串變量str2最大長度為10個字符

Dim str3$????使用變量類型聲明符定義字符串變量str3

Option Explicit 規(guī)定強制聲明變量

勾選后強制聲明變量

變量賦值

[Let]變量名=數(shù)據(jù)????[]方括號表示可選可省略

引用對象

Set 變量 = 對象????Set不能省略

創(chuàng)建過程:在過程中插入要運行的代碼

Sub 過程名()

????代碼...

End Sub

引用工作表對象

Dim sheet1 As Worksheet????'定義一個工作表變量

Set sheet1 = Worksheets("aaa")????'引用一個名稱為aaa的工作表

Set sheet1 = Worksheets(1)????'引用當前工作簿中的第一個工作表

定義常量

Const 常量名 As 數(shù)據(jù)類型 = 值

定義數(shù)組

Public|Dim 數(shù)組名????([數(shù)組下界 to ]數(shù)組上界)??? As 數(shù)據(jù)類型????'默認下界值時0,可省略

Dim 商品 (1 to 10) As String????'定義商品數(shù)組,包含10個文本元素

商品(1)="電視機"'????第1個元素文本值是電腦

商品(5)="電腦"????'第5個元素文本值是電腦

定義二維數(shù)組

Dim 位置(1 to 4,1 to 5) As String????'定義一個存儲地理位置的二維數(shù)組

位置(2,2) = "地點A"

同理可定義更多維數(shù)的數(shù)組

使用Array函數(shù)創(chuàng)建數(shù)組

Dim 水果 As Variant????'要使用Array函數(shù)定義時必須是變體類型

水果=Array("香蕉","蘋果","菠蘿","西瓜")

使用Split函數(shù)創(chuàng)建數(shù)組

Dim 數(shù)碼產(chǎn)品 As Variant????'要使用Split函數(shù)定義時必須是變體類型

數(shù)碼產(chǎn)品=Array("手機|顯示器|相機|耳機|平板|電腦","|")????'第一個參數(shù)為需要分割的字符串,第二個參數(shù)為分隔符

將數(shù)組寫入單元格區(qū)域

Range("A1:D1")????=????Array(1,2,3,4)????'一維數(shù)組寫入單元格區(qū)域,單元格區(qū)域必須位于同一行

Dim arr As Variant

arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

Range("B2:B10") = Application.WorksheetFunction.Transpose(arr)

使用Join函數(shù)鏈接字符串

數(shù)組ar1使用Join函數(shù)使用"--"符號連接所有數(shù)組元素

二維數(shù)組賦值到單元格區(qū)域時,第一維對應(yīng)相同數(shù)量的單元格區(qū)域行數(shù)量,第二維對應(yīng)相同區(qū)域的列數(shù)量。

使用Like語句判斷字符串文本

通配符:

*????代表任意多個字符????"張三" Like "張*"????=????True,"張婷婷" Like "張*"????=????True

?? 代表任意一個字符????"張三" Like "張?"????=????True,"張婷婷" Like "張?"????=????False,"張婷婷" Like "張??"????=???True

#????代表任意一個數(shù)字????"678" Like "#78" = True,? ?"商品1" Like "商品#" = True

[字符范圍]? ?查找該字符范圍內(nèi)的任意一個字符????“B”?Like "[A-C]"?=True ,“B”?Like "[D-E]"?=False

[!字符范圍]? ?查找不在該字符范圍內(nèi)的任意一個字符????“B”?Like "[!A-C]"?=False ,“B”?Like "[!D-E]"?=True,“6”?Like "[!1-5]"?=True

通配符必須在英文/半角符號下輸入

循環(huán)單行/單列區(qū)域內(nèi)所有單元格方式:

Dim i As Integer

i = 起始位置行號

?'以循環(huán)一列單元格數(shù)據(jù)為例,單元格不為空時循環(huán)執(zhí)行

Do While Cells(i,列號) <> ""???

????? ? 處理代碼

????i=i+1????'每次增加一行,執(zhí)行下一行的處理程序

Loop?

?'以循環(huán)一行單元格數(shù)據(jù)為例,當單元格為空時停止執(zhí)行

Dim j As Integer

j = 起始位置列號

Do?

????? ? 處理代碼

????j=j+1????'每次增加一列,執(zhí)行下一列的處理程序

Loop Until???Cells(行號,j) =?""? ?

For Each...Next 語句

工作表循環(huán)(同一工作簿)

Dim sht As WorkSheet

For Each sht In WorkSheets

????處理代碼

Next sht

循環(huán)單元格區(qū)域

Dim r1 As Range

For Each r1 In Range("A1:D5")

????處理代碼

Next r1

With……End With????語句

With Range("A1").Font

????.Bold = True????'字體格式為加粗。 讀/寫 variant 類型的值 。

? ? .Color =?RGB(0, 255, 0)????'設(shè)置對象顏色

????.ColorIndex = 3????'設(shè)置字體顏色(紅色)

????.FontStyle = "Bold Italic"????'返回或設(shè)置字型(單元格的字體樣式設(shè)置為加粗和傾斜)

????.Italic = True????'設(shè)置為斜體

????.Name="宋體"????返回或設(shè)置字體格式

????.Size=12????'返回或設(shè)置字號

????.Strikethrough = True????'添加水平刪除線????

????.Subscript = False????'設(shè)置字體格式為下標(默認情況下為False)

????.Superscript = False????'設(shè)置字體格式為上標(默認情況下為False)

????.Underline = xlUnderlineStyleSingle????'設(shè)置字體下劃線類型(單下劃線)

Rem 以上設(shè)置的是單元格Font對象的常用屬性

End With

調(diào)用過程的方式

直接輸入過程名和參數(shù):過程名

Call語句調(diào)用過程:Call 過程名[(參數(shù)1,參數(shù)2……)[

Application.Run????過程名[參數(shù)1,參數(shù)2……]

私有過程

Private Sub 私有過程名([參數(shù)……])

????代碼……

End Sub

私有過程不會在宏對話框中顯示

設(shè)置底紋顏色

Range("A1").Interior.Color=RGB(255,255,0)????'設(shè)置A1單元格底紋顏色為黃色

若應(yīng)用到 If 語句中,則? '判斷A1單元格底紋顏色是否為黃色,是返回真

If?Range("A1").Interior.Color=RGB(255,255,0)????Then??

????代碼……

End If

易失性函數(shù)

Application.Volatile = True????將自定義函數(shù)設(shè)置成易失性函數(shù)后,每次工作表重算時,函數(shù)進行重新計算。

不顯示警告框

Application.DisplayAlerts = False '不顯示警告信息

在函數(shù)運行完成后,應(yīng)將Application.DisplayAlerts設(shè)置恢復(fù)為True,顯示警告信息

關(guān)閉屏幕更新

Application.ScreenUpdating = False '關(guān)閉屏幕更新可以提高代碼運行速度

在函數(shù)運行完成后,應(yīng)將Application.ScreenUpdating設(shè)置恢復(fù)為True,打開屏幕更新

清除表中所有數(shù)據(jù)

Cells.ClearContents

單元格區(qū)域賦值

Range("A1:A10")=1????'A1至A10區(qū)域中的每個單元格都賦值為數(shù)字1

禁止事件執(zhí)行

Application.EnableEvents = False????'禁止所在的過程事件執(zhí)行

使用Excel中的內(nèi)置函數(shù)

Application.WorksheetFunction.Sum(Range("A1:A10"))????'使用Sum函數(shù)求A1至A10單元格區(qū)域數(shù)值的和。

當前活動對象

ActiveCell????當前活動單元格

ActiveChart????當前活動圖表

ActiveSheet????當前活動工作表

ActiveWindow????當前活動窗口

ActiveWorkbook????當前活動工作簿

引用工作簿

Workbooks.Itme(索引號)????效果等同于Workbooks(索引號)????

Workbooks("工作簿名稱")

獲取當前工作簿(ThisWorkbook)地址和名稱

Sub 工作簿地址名稱()

? ? Dim wbName As String

? ? Dim wbPath As String

? ? Dim wbFullName As String

? ? wbName = ThisWorkbook.Name? '當前工作簿名稱

? ? wbPath = ThisWorkbook.Path? '當前工作簿路徑

? ? wbFullName = ThisWorkbook.FullName? '當前工作簿路徑和名稱

? ? MsgBox "當前工作簿名稱:" & wbName & Chr(13) & "當前工作簿路徑:" & wbPath & Chr(13) & "當前工作簿路徑和名稱:" & wbFullName

End Sub

? ? ? ? ? ? ? ? ? ? ? ?

創(chuàng)建當前工作表

Workboos.add(Template)方法:新建一個工作簿。 新工作表將成為活動工作簿。

參數(shù):Template,可選 Variant,確定如何創(chuàng)建新工作簿。 如果此參數(shù)為指定現(xiàn)有 Microsoft Excel 文件名的字符串,那么創(chuàng)建新工作簿將以該指定的文件作為模板。 如果此參數(shù)為常量,新工作簿將包含一個指定類型的工作表。 可為以下 XlWBATemplate 常量之一:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或 xlWBATWorksheet。 如果省略此參數(shù), Microsoft Excel 將創(chuàng)建一個新的工作簿, 其中包含許多空白工作表 (工作表數(shù)由**SheetsInNewWorkbook** 屬性設(shè)置)。

工作表類型

Workbooks.Add("C:\Excel 學(xué)習(xí).xls")????'以C盤的Excel 學(xué)習(xí).xls文件為模板創(chuàng)建一個工作簿

Workbooks.Add(xlWBATChart)????新建一個包含圖表工作表的工作簿

打開工作簿:Workbooks.Open(參數(shù)列表)? ?

Workbooks.Open("C:\Excel 學(xué)習(xí).xls")????'打開C盤的Excel 學(xué)習(xí).xls工作簿

保存工作簿

ThisWorkbook.Save????'保存當前工作簿

工作簿對象.Save????'保存工作簿

另存工作簿

ThisWorkbook.SaveAs filename:=保存的路徑和文件名????'省略路徑則保存到當前文件夾中

關(guān)閉工作簿

Workbooks.Close????'關(guān)閉所有工作簿

工作簿對象.Close????'關(guān)閉指定工作簿如:Workbook("Excel 學(xué)習(xí)").Close

SaveChanges參數(shù):為True時關(guān)閉工作簿時保存更改,F(xiàn)alse不保存對工作簿所做更改。

ThisWorkbook是對程序所在工作簿的引用,ActiveWorkbook是對活動工作簿的引用

引用工作表

Worksheets.Item(3)????'引用工作簿中的第3個工作簿,等同于Worksheets(3)

Worksheets("Excel學(xué)習(xí)')????'引用工作簿中名稱為“Excel學(xué)習(xí)”的工作表????

工作表屬性標簽名稱Name,代碼名稱CodeName


新建工作表

WorkSheets.Add方法:創(chuàng)建新的工作表、圖表或宏工作表。 新工作表成為活動工作表。

Worksheets.Add befor:=Worksheets(1)????'在第一張工作表前插入一張新工作表

在最后一個工作表后插入一個新工作表并修改標簽名

在第一張工作表后插入3張工作表(若省略After參數(shù)則再活動工作表前插入)

Worksheets.Add After:=Worksheets(1),?Count:=3

刪除工作表

Worksheet(1).Delete????'刪除第一個工作表

激活工作表

Worksheet(1).Activeate????'激活第一張工作表,等效于Worksheet(1).Select

復(fù)制工作表

Worksheets("Excel學(xué)習(xí)").Copy befor:=Worksheets(1)????'將Excel學(xué)習(xí)工作表復(fù)制到第一張工作表之前

若不使用參數(shù),默認將復(fù)制的工作表粘貼到新工作簿中

FillAcrossSheets 方法:將單元格區(qū)域復(fù)制到集合中所有其他工作表的同一位置。

'將單元格區(qū)域復(fù)制到集合中所有其他工作表的同一位置。

x = Array("Sheet1", "Sheet5", "Sheet7")?

Sheets(x).FillAcrossSheets _?

Worksheets("Sheet1").Range("A1:C5")

移動工作表

Worksheets.Move 方法:將工作表移到工作簿中的其他位置。

Worksheets("Sheet1").Move after:=Worksheets("Sheet3")????'此示例將當前活動工作簿的 Sheet1 移到 Sheet3 之后。

PrintOut 方法:打印對象。

PrintPreview 方法:按對象打印后的外觀效果顯示對象的預(yù)覽。

Select 方法:選擇工作表對象

隱藏工作表

Visible 屬性 :返回或設(shè)置一個**xlSheetVisibility** 值, 該值確定對象是否可見。

xlSheetHidden 0 隱藏工作表,用戶可以通過菜單取消隱藏。

xlSheetVeryHidden 2 隱藏對象,以便使對象重新可見的唯一方法是將此屬性設(shè)置為 True(用戶無法使該對象可見)。

xlSheetVisible -1 顯示工作表。

Worksheets("Sheet1").Visible = False????'示例隱藏 Sheet1。

單元格區(qū)域Range對象和單元格Cells對象

Range("B5:H12").Cells(1,1)????'引用單元格區(qū)域B5:H12中第1行,第1列單元格

Range("A1:C9").Cells(5)????'引用單元格區(qū)域A1:C9中第5個單元格

若單元格所有號大于區(qū)域中所有單元格,則按區(qū)域的行向下拓展,列數(shù)不變

Range("A1:C9").Cells? ?'引用單元格區(qū)域A1:C9中所有單元格

ActiveSheet.Cells????????'引用活動工作表中所有單元格

行Rows列Columns對象

ActiveSheet.Rows("2:5")????'引用活動工作表的第2至第5行

Worksheets(1).Rows????'引用第1張工作表中的所有行

Range("B2:C5").Rows("1:1")????'引用單元格區(qū)域B2:C5中的第1行,即引用工作表中的第2行

ActiveSheet.Columns("E:F")????'引用活動工作表中的E至F列

Worksheets(1).Columns(2)???????‘引用第1張工作表中的第2列

Columns("B:E").Columns(2)????'引用B至E列中的第2列,即C列

Union方法

Application.Union(Range("區(qū)域1"),Range("區(qū)域2"))????連接多個不連續(xù)區(qū)域

Offset屬性

Range("B2").Offset(1,2)????'引用B2單元格向下1行,向右2列移動的單元格,即D4單元格

Range("C2:D3").Offset(2,-1)????'單元格區(qū)域C2:D3向下移動2行,向左移動1列,即B4:C5

Resize屬性

放大或縮小單元格區(qū)域,

Range("B2:C3').Resize(3,5)????'擴大后的區(qū)域為B2:D6,即縮放是以所選區(qū)域左上角第一個單元格為基準。

Range("B2:D6").Resize(2,2)????'縮小至B2:C3區(qū)域

UsedRange屬性返回工作表中以使用的所有單元格圍成的矩形區(qū)域,忽略其中的空單元格,空行,空列,空值等。

CurrentRegion屬性返回當前區(qū)域以空行,空列為邊界圍成的區(qū)域,對于同一工作簿,其小于或等于UsedRange屬性返回的區(qū)域。

End屬性

Range("A65536").End(xlUp).Offset(1,0)????'返回A列中最后一個非空單元格下移一行,常用語填寫新一行數(shù)據(jù)

Value屬性

Range("A1:B2").Value="aaa"????在A1:B2區(qū)域每個單元格中都輸入文本aaa

Count屬性

Range("A1:B2").Count????'返回A1:B2區(qū)域單元格的數(shù)量

Range("A1:B2").Rows.Count????'返回A1:B2區(qū)域行的數(shù)量

Range("A1:B2").Columns.Count????'返回A1:B2區(qū)域列的數(shù)量

Address屬性

返回單元格區(qū)域的地址

MsgBox Range("A1:B2").Offset(15,21).Address

PasteSpecial 方法?

'本示例用單元格 Sheet1 上單元格區(qū)域 C1:C5 和單元格區(qū)域 D1:D5 原有內(nèi)容相加之和來替換單元格區(qū)域 D1:D5 中的數(shù)據(jù)。

With Worksheets("Sheet1")?????

?.Range("C1:C5").Copy?

?.Range("D1:D5").PasteSpecial _?

? Operation:=xlPasteSpecialOperationAdd?

End With

以上內(nèi)容是本人自學(xué)筆記總結(jié),歡迎指正,有關(guān)Excel的問題,可私信聯(lián)系,互相交流討論,共同進步,謝謝。


Excel VBA 入門學(xué)習(xí)總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
五华县| 河北省| 金华市| 新建县| 文昌市| 南郑县| 鄂尔多斯市| 侯马市| 农安县| 天门市| 龙州县| 长寿区| 荥经县| 南岸区| 黄石市| 西峡县| 郎溪县| 铜山县| 邢台市| 甘德县| 通渭县| 麟游县| 浦北县| 都昌县| 喀喇沁旗| 吕梁市| 贺兰县| 岳池县| 钟祥市| 双鸭山市| 江阴市| 孟村| 江油市| 舟山市| 柯坪县| 宜昌市| 郁南县| 安陆市| 留坝县| 通河县| 长乐市|