右擊excel的sheet也名稱,點(diǎn)擊查看代碼,這時(shí)就打開了一個(gè)VBA窗口。 VBA都是由 Sub 宏名() 開始,End Sub 結(jié)束。 推薦你一本書《別怕,Excel VBA其實(shí)很簡(jiǎn)單》,簡(jiǎn)單通俗,適合初學(xué)者。這個(gè)在百度上都能搜得到電子版的。
VB、VBA?這其實(shí)都是編程的入門級(jí)語(yǔ)言。接下來(lái)為大家展示如何使用VBA。
材料/工具
電腦、excle
手頭電腦未裝excel2007,某些用詞可能不太準(zhǔn)。供參考吧! 關(guān)鍵是在功能區(qū)中打開“開發(fā)工具”。 (窗口左上角)Office按鈕-->Excel選項(xiàng)-->(其中有一項(xiàng)是打開“開發(fā)工具”) -->(功能區(qū)會(huì)增加“開發(fā)工具”)點(diǎn)擊-->(出現(xiàn)“Visual Basic 編輯器”)
方法
打開一個(gè)Excel文件,鼠標(biāo)右擊下面的工作表(如sheet1)。選擇“查看代碼”,就可以打開VBA編輯界面。
漏參數(shù)了 語(yǔ)法 ROUNDDOWN(number, num_digits) ROUNDDOWN 函數(shù)語(yǔ)法具有下列參數(shù) (參數(shù):為操作、事件、方法、屬性、函數(shù)或過(guò)程提供信息的值。): Number 必需。需要向下舍入的任意實(shí)數(shù)。 Num_digits 必需。四舍五入后的數(shù)字的位數(shù)。 說(shuō)明 函數(shù)
選擇下拉菜單,選擇“worksheet”。
Set 語(yǔ)句 請(qǐng)參閱 示例 特性 將對(duì)象引用賦給變量或?qū)傩浴?語(yǔ)法 Set objectvar = {[New] objectexpression | Nothing} Set 語(yǔ)句的語(yǔ)法包含下面部分: 部分 描述 objectvar 必需的。變量或?qū)傩缘拿Q,遵循標(biāo)準(zhǔn)變量命名約定。 New 可選的。通常在聲
選擇對(duì)應(yīng)的觸發(fā)模式。這里選擇BeforeDoubleClick,即在本工作表鼠標(biāo)雙擊(之前),將觸發(fā)下面的代碼程序。
Join 函數(shù),返回一個(gè)包含子字符串?dāng)?shù)組中的指定數(shù)量的字符串。這與 Split方法的作用完全相反。語(yǔ)法Join(List[,delimiter]) 1.List, 必需的參數(shù)。要加入包含屬于子數(shù)組。2.delimiter, 一個(gè)可選的參數(shù)。字符就是返回的字符串,用作分隔符。缺省的分
(activate意思是說(shuō):在sheet表被選取的時(shí)候,就觸發(fā);Change意思是說(shuō):在這個(gè)模式下,只要sheet(工作表)發(fā)生變化,就將觸發(fā);Before Right Click是指在鼠標(biāo)右擊之前觸發(fā);SelectionChange是指在鼠標(biāo)焦點(diǎn)發(fā)生變化時(shí),觸發(fā)。)
你是要運(yùn)行EXCEL工作表函數(shù)還是要給在VBA中給單元格寫公式 如果是要用函數(shù) applivation.worksheetfunction. 如果是要給格寫公式比如B4=A1+1 請(qǐng)用range("B4").Formula = "=A1+1"
選擇完成后,會(huì)看到下面出現(xiàn)了兩條代碼;這倆條代碼其實(shí)是在聲明一個(gè)函數(shù)。
監(jiān)視窗口 當(dāng)工程中有定義監(jiān)視表達(dá)式定義時(shí),就會(huì)自動(dòng)出現(xiàn)。 可以: 重置列標(biāo)頭的大小,通過(guò)往右拖移邊線來(lái)使它變大,或往左拖移邊線來(lái)使它變校 拖動(dòng)一個(gè)選取的變量,到立即窗口或監(jiān)視窗口中。 可以按下關(guān)閉框,來(lái)關(guān)閉一個(gè)窗口。如果關(guān)閉框不是可
將鼠標(biāo)放置在這兩行代碼之間,我們寫上執(zhí)行語(yǔ)句:
打開你含VBA程序的EXCEL 文件 點(diǎn)擊菜單中的 工具---宏---Visual Basic 編輯器 打開Visual Basic 編輯器 在Visual Basic 編輯器菜單中 點(diǎn)擊 工具---VBAProject屬性 打開VBAProject屬性對(duì)話框 選擇點(diǎn)擊 保護(hù)選項(xiàng)卡 選擇 查看時(shí)鎖定工程 下面輸入密
Sheet1.Cells(1, 3) = Sheet1.Cells(1, 1) + Sheet1.Cells(1, 2)
這個(gè)可以有 Sub chiefzjh() Dim xlApp, xlBook Set xlApp = CreateObject("excel.application") Set xlBook = xlApp.Workbooks.Open("E:My Document用宏匯總出入庫(kù)數(shù)據(jù).xls") xlApp.Visible = True End Sub
其中:sheet1.cells(1,3)就是指第一行第三列的這個(gè)單元格;Sheet1.Cells(1, 1)就是指第一行第一列的這個(gè)單元格;Sheet1.Cells(1, 2)就是指第一行第二列的單元格。執(zhí)行語(yǔ)句的意思是:將cells(1,1)和cells(1,2)的值相加,并賦值給cells(1,3)
這個(gè)可以有 Sub chiefzjh() Dim xlApp, xlBook Set xlApp = CreateObject("excel.application") Set xlBook = xlApp.Workbooks.Open("E:My Document用宏匯總出入庫(kù)數(shù)據(jù).xls") xlApp.Visible = True End Sub
注意的是:寫語(yǔ)句的時(shí)候,輸入法一定要是輸入字母的模式。要不然你的語(yǔ)句會(huì)報(bào)錯(cuò)
range("j"&j) range("k"&j) 、、、、 括號(hào)里是雙引號(hào)里為列標(biāo),后面加個(gè)連接符號(hào)&和變量名稱j
然后點(diǎn)擊保存,回到Excel的原始界面。在cells(1,1)和cells(1,2)中輸入兩個(gè)數(shù)值。(樓主輸入的是:125895和78954)
Alt+F11,輸入以下代碼便可: Private Sub Worksheet_SelectionChange(ByVal Target As Range)For i = 1 To 100 '獲取第一行的單元格數(shù)量 If Cells(1, i).Value = "" Then Exit For a = a + 1 Next i For i = 1 To 100 '獲取第二行的單元格數(shù)量I
注意看:現(xiàn)在的cells(1,3)數(shù)值是空的
要調(diào)用某個(gè)CELL的數(shù)據(jù),可以在VBA中寫:(假設(shè)是B3單元) Dim temp As String temp = Range("B3").Value 或 temp = Cells(3,2).Value 或 temp = Cells(3, "B") 這里,即使EXCEL表格里是數(shù)字,到了VBA里面還是變成字符串。 然后,再判斷temp
在sheet1的工作表中,雙擊你的鼠標(biāo)。你會(huì)發(fā)現(xiàn),cells(1,3)的值變成了cells(1,1)和cells(1,2)的和。(204849=125895+78954)
舉例說(shuō)明。 第一步:點(diǎn)擊office按鈕-excel選項(xiàng)。如圖: 第二步:對(duì)“在功能區(qū)顯示”開發(fā)工具欄“ 打勾。如圖: 第三步:點(diǎn)擊開發(fā)工具-visual basic。如圖: 第四步:插入模塊。如圖: 這樣就可以開始編寫代碼了 。
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
EXCEL VBA 大師請(qǐng)進(jìn) 怎么在excel中利用VBA(宏)命令打開一個(gè)新的EXCEL
這個(gè)可以有
Sub chiefzjh()
Dim xlApp, xlBook
Set xlApp = CreateObject("excel.application")
Set xlBook = xlApp.Workbooks.Open("E:\My Document\用宏匯總出入庫(kù)數(shù)據(jù).xls")
xlApp.Visible = True
End Sub追問(wèn)這才正解嘛,不過(guò)兩點(diǎn)疑問(wèn):
1.Set xlBook = xlApp.Workbooks.Open("E:\My Document\用宏匯總出入庫(kù)數(shù)據(jù).xls")
可改為:xlApp.Workbooks.Open("E:\My Document\用宏匯總出入庫(kù)數(shù)據(jù).xls")嗎?
為什么要賦給xlBook?
2.為什么打開后是隱藏的呀?即 要使用xlApp.Visible = True來(lái)顯示。
EXCEL VBA的SUM函數(shù)怎么用啊
Application.Sum (Range("b8:b100"))
怎么用excel VBA range 函數(shù)來(lái)表示
range("j"&j)
range("k"&j)
、、、、
括號(hào)里是雙引號(hào)里為列標(biāo),后面加個(gè)連接符號(hào)&和變量名稱j追問(wèn)range("j"&j)里j是代表行標(biāo)嗎追答前面的"J"是指J列的列標(biāo),因?yàn)閞ange表示區(qū)域時(shí),里面要加雙引號(hào)的,比如 用range("a1:c1")來(lái)表示A1:C1區(qū)域,里面的字母不區(qū)分大小寫,range("A1:C1")也是一樣的
后面的j是指你定義的變量,代表行數(shù),如果你定義了for j=1 to 10,那么range("j"&j)就是 J1、J2、J3、、、、、J10,循環(huán)到10之后就停止了。
range("j"&j)--range("j"&1)--range("j1")
range("j"&j)--range("j"&2)--range("j2")
里面的&連接符是把J列標(biāo)和變量1、2、3給連接起來(lái)
怎么用EXCEL的VBA腳本進(jìn)行行的操作
Alt+F11,輸入以下代碼便可:
?
Private?Sub?Worksheet_SelectionChange(ByVal?Target?As?Range)
For?i?=?1?To?100?'獲取第一行的單元格數(shù)量
If?Cells(1,?i).Value?=?""?Then?Exit?For
a?=?a?+?1
Next?iFor?i?=?1?To?100?'獲取第二行的單元格數(shù)量
If?Cells(2,?i).Value?=?""?Then?Exit?For
b?=?b?+?1
Next?iFor?i?=?1?To?b
For?j?=?1?To?a
Cells(3,?k?+?1)?=?Cells(2,?i)?&?"->"?&?Cells(1,?j)
k?=?k?+?1
Next?j
Next?i
End?Sub
結(jié)果:
怎么用VBA調(diào)用EXCEL里的數(shù)據(jù)?
要調(diào)用某個(gè)CELL的數(shù)據(jù),可以在VBA中寫:(假設(shè)是B3單元)
Dim temp As String
...
temp = Range("B3").Value 或 temp = Cells(3,2).Value 或 temp = Cells(3, "B")
這里,即使EXCEL表格里是數(shù)字,到了VBA里面還是變成字符串。
然后,再判斷temp的內(nèi)容,用 if...then... 語(yǔ)句就可以了:
......
If temp = "yes" Then
.....
Else
If temp = "no" Then
.....
Else
.....
End If
End If
......
語(yǔ)句不多,好像沒有必要寫一個(gè)SUB TEXT()。