首先,我建了一個演示示例。本文要通過宏實現(xiàn)的功能是將A列中","號之前的文字提取出來. 在Sheet1右鍵,選擇查看代碼 彈出VBA編輯頁面 在Sheet1代碼編輯頁面輸入代碼: Sub test()Dim i As IntegerFor i = 1 To 50 Step 1 Range("B" & i).Select
本文我們將從以下幾個部分來詳細介紹如何在 Microsoft Excel 編寫簡單的宏:啟用宏、錄制宏、使用宏
本文將會教你如何在Excel中創(chuàng)建簡單的宏。部分 1啟用宏
第一步打開菜單中的視圖->工具箱->控件工具箱->點擊一下工具箱中的命令按鈕,然后在你指定的位置按鼠標左鍵拉一個方框創(chuàng)建一個命令按鈕,然后雙擊該按鈕進入VBA編輯模式,再把下面的代碼里分隔線之間的代碼粘貼進去,再回到工作表,點擊 控件工具箱中
第1步:打開Excel。
一個建議:VBA內(nèi)容很多,學(xué)不完的,不要去買什么大全。 另外一個建議:其實VBA編程可以錄制宏來修改,看不懂的可以按F1查看幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網(wǎng)上隨便看幾個網(wǎng)頁的入門教程就可以編程了。
在Excel 2010、2013和2016中,啟用宏的方法是一樣的。但是和Mac版本的Excel還是有些許不同,后文會具體介紹。
sub 選擇() activesheet.[a4:f6].select end sub
第2步:點擊文件標簽。
宏的功能比函數(shù)要強啊.宏可以調(diào)用函數(shù),反過來好像不行吧. 宏就是編程了.嵌入office的vb,也叫vba.微軟叫vba. 說到編程,那她還能調(diào)用其他的東西. 總之,使用宏想怎么計算就怎么計算.
在Mac版本的Excel中,點擊“Excel”菜單。
Sub test() Set oExcel = GetObject(, "Excel.Application") Set oWb = oExcel.Workbooks.Open("D:test.xls") 寫你自己的Excel路徑 MsgBox oWb.Sheets("Sheet1").Range("C5") 取"Sheet1"工作表C5單元格的值 oExcel.Quit 退出Excel End Sub
第3步:點擊 選項。
我的excel中也有argument()類似自定義的函數(shù),但是無法找到這個宏或者宏的代碼,請問哪位大俠指點一下。
在Mac版本的Excel中,點擊“偏好設(shè)置”。
在excel2007環(huán)境下: 首先回答你錄制宏的作用:使簡單重復(fù)的動作做精妙 例如:想要在1-1000行里面每隔一行就插入一行。這時候你就可以錄制一個宏,按住快捷鍵,就可以快速完成此項動作,而且非常準確避免人為的眼花!O(∩_∩)O哈哈哈~ 具體操作如
第4步:點擊自定義功能區(qū)選項。
軟件版本:Office2013 方法如下: 1.Alt+F11,打開VBE界面,點擊左側(cè)要執(zhí)行代碼的工作表,出現(xiàn)右側(cè)空白編輯區(qū) 2.輸入代碼,點擊運行按鈕,或者按F5: 3.這樣,就執(zhí)行了宏代碼:
在Mac版本的Excel中,在“編輯”區(qū)域中,點擊“功能區(qū)和工具欄”。
一個建議:VBA內(nèi)容很多,學(xué)不完的,不要去買什么大全。 另外一個建議:其實VBA編程可以錄制宏來修改,看不懂的可以按F1查看幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網(wǎng)上隨便看幾個網(wǎng)頁的入門教程就可以編程了。
第5步:在右側(cè)列表中點擊開發(fā)者。
1、新建一工作表。 2、在sheet1中插入一個藝術(shù)字(藝術(shù)字將成為按鈕)。 3、右擊藝術(shù)字→指定宏→新建。 4、復(fù)制以下代碼,就會在sheet1的A列中出現(xiàn)結(jié)果。(若要隨機可插入Rnd函數(shù))。 Sub 藝術(shù)字1_單擊() step_a: a = InputBox("A的比例(請輸入
在Mac版本的Excel中,你可以從“標簽或組標題”中找到“開發(fā)者”。
個人只能簽署本機證書,如果遷移到其他電腦,需要重新簽署 在開始菜單中如下操作 Microsoft Office->Microsoft Office 工具->VBA 項目的數(shù)字證書->輸入證書名稱(隨意)->確定 這樣證書就生成了,然后打開VBA 在菜單中 選項->數(shù)字簽名->選擇->點
第6步:點擊確定。
相同的編號,多行轉(zhuǎn)一行? 問你怎么不回答? Sub a()j = 1For i = 2 To [a65536].End(3).Row If Range("A" & i) Range("A" & i - 1) Then j = j + 1 Range("D" & j) = Range("A" & i) Cells(j, 256).End(xlToLeft).Offset(, 1) = Range("B" & i)
你可以在標簽列表末尾看到開發(fā)者標簽頁。
第一題代碼: Private Sub Workbook_BeforeClose(Cancel As Boolean) For i = 2 To 6 If Not (IsNumeric(Sheet1.Cells(3, i)) And Sheet1.Cells(3, i) >= 0 And Sheet1.Cells(3, i) 0 And ran < 60 Then ran.Font.ColorIndex = 3 ran.Interior.C
部分 2錄制宏
Sub test() Set oExcel = GetObject(, "Excel.Application") Set oWb = oExcel.Workbooks.Open("D:test.xls") 寫你自己的Excel路徑 MsgBox oWb.Sheets("Sheet1").Range("C5") 取"Sheet1"工作表C5單元格的值 oExcel.Quit 退出Excel End Sub
第1步:練習(xí)宏動作。
在介紹學(xué)習(xí)VBA之前,應(yīng)該花幾分鐘錄制一個宏。 新術(shù)語:“宏”,指一系列EXCEL能夠執(zhí)行的VBA語句。 以下將要錄制的宏非常簡單,只是改變單元格顏色。請完成如下步驟: 1)打開新工作簿,確認其他工作簿已經(jīng)關(guān)閉。 2)選擇A1單元格。調(diào)出“常用”工具欄
當(dāng)你錄制宏時,你的任何點擊或動作都會被錄下來,所以一個小失誤會導(dǎo)致整個動作的失敗。你可以多練習(xí)幾次要做的動作,這樣在錄制時可以毫不猶豫地完成整個動作,不會出現(xiàn)失誤。
有人有很詳細的圖文指引,我就不唧唧歪歪了 https://jingyan.baidu.com/article/2c8c281df745d90008252acd.html
第2步:點擊開發(fā)者標簽。
可以在A6中輸入題號,利用vlookup,根據(jù)題號查詢題目和相應(yīng)的選項。上、下一題按鈕分別減、加題號?;旧纤悸肪褪沁@樣。
第3步:點擊 錄制宏。
sub 折扣后單價() for i=2 to cells(65536,1).end(xlup).row if cells(i,1)
你可以在命令區(qū)中找到它,也可以按下Alt+T+M+R,新建一個宏(只適用于Windows系統(tǒng))。
首先,我建了一個演示示例。本文要通過宏實現(xiàn)的功能是將A列中","號之前的文字提取出來. 在Sheet1右鍵,選擇查看代碼 彈出VBA編輯頁面 在Sheet1代碼編輯頁面輸入代碼: Sub test()Dim i As IntegerFor i = 1 To 50 Step 1
第4步:給宏命名。
比如你要循環(huán)返回 A1 到z1單元格的值 你可以這樣?。?for i =1 to 26 msgbox cells(1,i).valuenext如果是范圍的話可以這樣: for i =1 to 26 msgbox range(cells(1,i),cells(i,1)).countnext
命名方法最好簡單一些(特別是你要創(chuàng)建多個宏的時候)。
Private Sub CommandButton1_Click() With Selection .Interior.Color = [i14].Interior.Color End With End Sub
你還可以給宏添加描述,說明這個宏可以實現(xiàn)什么效果。
H3輸入公式:(MAX(E3:G3))/(1.5*D3) 然后設(shè)置單元格格式為百分比。個人認為用公式解決更快些
第5步:點擊快捷鍵區(qū)域。
按鈕的名稱是按鈕的captin屬性 按按鈕是按鈕的click事件。 Private Sub CommandButton1_Click() 在當(dāng)前工作表單元格A1中顯示 range("A1")=CommandButton1.caption 在對話框中顯示 msgbox CommandButton1.caption End Sub
你可以給宏添加鍵盤快捷鍵,這樣可以輕松運行它,不過這不是必須的。
不是這個宏的 問題, 有其他代碼 或者模塊 設(shè)置了保護, 最好有原文件看看 1052974911@qq.com
第6步:按下Shift和一個字母。
Sub 選擇多個文件() Dim I As Long With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Filters.Clear .Filters.Add "excel files", "*.xls" .Filters.Add "all files", "*.*" .Show For I = 1 To .SelectedItems
這樣可以創(chuàng)建一個“Ctrl+Shift+字母”的快捷鍵組合,方便啟用宏。
Private Sub Workbook_open() 【功能代碼】 End Sub 或者 Private Sub Workbook_open() Call【代碼名】 End Sub Workbook_open事件代碼為工作簿代碼,一定要放在Thisworkbook模塊內(nèi),否則不會自動運行。
在Mac上,鍵盤快捷鍵的組合是“Opt+Command+字母”。
你之前A1中有沒有數(shù)據(jù)呢?如果有的Sub mymacro() Dim A1, A2, A3 As Integer A1 = Cells(1, 1).Value A2 = Cells(1, 2).Value A3 = Cells(1, 3).Value If A2 "0" Then A3 = A1 + A2 Cells(1, 3).Value = A3 End If End Sub 這樣才對。
第7步:點擊保存宏。
第8步:選擇保存宏的位置。
如果你只是在當(dāng)前工作表中使用這個宏,選擇“當(dāng)前工作簿”;如果你希望在任意工作表中使用,選擇“個人宏工作簿”。
第9步:點擊確定。
現(xiàn)在,宏開始錄制了。
第10步:開始執(zhí)行你要錄制的命令。
現(xiàn)在,你做的任何動作都會被錄制并記錄在宏里。比如,如果你想計算A2和B2的總和,并記錄在C7中,那么以后每次運行宏都會計算A2和B2的總和,然后放到C7中。
宏可以很復(fù)雜,你還可以通過它啟用其它Office程序。開始錄制后,你在Excel中的任何操作都會添加到宏中。
第11步:當(dāng)你執(zhí)行完后,點擊停止錄制。
點擊之后,宏會停止錄制,并保存起來。
第12步:將文件保存成啟用宏的格式。
為了保存你的宏,你需要將工作簿保存成可以啟用宏的特殊Excel格式:
點擊“文件”菜單,選擇“保存”。
在文件名下方,點擊“文件格式”菜單。
選擇“啟用宏的Excel工作簿”。
部分 3使用宏
第1步:打開包含了宏的工作簿。
如果你在運行宏之前已經(jīng)關(guān)閉了文件,程序會提示你啟用內(nèi)容。
第2步:點擊啟用內(nèi)容。
當(dāng)你打開一個包含宏的工作簿時,Excel數(shù)據(jù)表格會彈出安全警告,里面就有該選項。由于這是你的私人文檔,所以你可以信任它,但是打開其它來源的文件時,需要格外小心。
第3步:按下宏的快捷鍵。
當(dāng)你要使用宏時,可以按下你設(shè)置的快捷鍵快速運行它。
第4步:在開發(fā)者標簽頁中,點擊宏按鈕。
當(dāng)前工作簿中所有可用宏都會顯示出來。
第5步:點擊你要運行的宏。
第6步:點擊運行按鈕。
你的宏會在當(dāng)前或選中的單元格中運行。
第7步:查看宏的代碼。
如果你想了解宏的運行方法,可以打開你創(chuàng)建的宏,并且對它進行修改:
在開發(fā)者標簽頁中,點擊“宏”按鈕。
點擊你想查看的宏。
點擊“編輯”按鈕。
在VB命令編輯窗口中,查看宏代碼。
擴展閱讀,以下內(nèi)容您可能還感興趣。
零基礎(chǔ),想開始自學(xué)VBA,在EXCEL中編寫一些宏,給推薦幾個本書,謝謝
一個建議:VBA內(nèi)容很多,學(xué)不完的,不要去買什么大全。
另外一個建議:其實VBA編程可以錄制宏來修改,看不懂的可以按F1查看幫助解釋和例子,只有入門的幾天需要看書。
因此,一般網(wǎng)上隨便看幾個網(wǎng)頁的入門教程就可以編程了。
EXCEL宏代碼編寫
1、新建一工作表。
2、在sheet1中插入一個藝術(shù)字(藝術(shù)字將成為按鈕)。
3、右擊藝術(shù)字→指定宏→新建。
4、復(fù)制以下代碼,就會在sheet1的A列中出現(xiàn)結(jié)果。(若要隨機可插入Rnd函數(shù))。
Sub 藝術(shù)字1_單擊()
step_a:
a = InputBox("A的比例(請輸入數(shù)字):")
If Not (IsNumeric(a)) Then
MsgBox "輸入不是數(shù)字,程序終止。"
Exit Sub
End If
a1 = a / 100 * 350
If a1 <> Int(a1) Then
MsgBox "A的個數(shù)=350*" & a & "%=" & a1 & "個,數(shù)量不是整數(shù),請重新輸入。"
GoTo step_a
End If
step_b:
b = InputBox("B的比例(請輸入整數(shù)):")
If Not (IsNumeric(b)) Then
MsgBox "輸入不是數(shù)字,程序終止。"
Exit Sub
End If
b1 = b / 100 * 350
If b1 <> Int(b1) Then
MsgBox "B的個數(shù)=350*" & b & "%=" & b1 & "個,數(shù)量不是整數(shù),請重新輸入。"
GoTo step_b
End If
MsgBox "C的比例=1-A的比例-B的比例=" & 100 - a - b & "%"
Sheet1.Cells(1, 2) = "A的數(shù)量= " & a1 & "個"
Sheet1.Cells(2, 2) = "B的數(shù)量= " & b1 & "個"
Sheet1.Cells(3, 2) = "C的數(shù)量= " & 350 - a1 - b1 & "個"
For i = 1 To a1
Sheet1.Cells(i, 1) = "A"
Next i
For i = i To a + b1
Sheet1.Cells(i, 1) = "B"
Next i
For i = i To 350
Sheet1.Cells(i, 1) = "C"
Next i
End Sub
Excel VBA 怎樣簽署自己編寫的宏
個人只能簽署本機證書,如果遷移到其他電腦,需要重新簽署
在開始菜單中如下操作
Microsoft Office->Microsoft Office 工具->VBA 項目的數(shù)字證書->輸入證書名稱(隨意)->確定
這樣證書就生成了,然后打開VBA
在菜單中 選項->數(shù)字簽名->選擇->點擊剛才生成的證書->確定
求EXCEL宏編寫
相同的編號,多行轉(zhuǎn)一行?
問你怎么不回答?
Sub a()j = 1
For i = 2 To [a65536].End(3).Row
If Range("A" & i) <> Range("A" & i - 1) Then j = j + 1
Range("D" & j) = Range("A" & i)
Cells(j, 256).End(xlToLeft).Offset(, 1) = Range("B" & i)
Next
End Sub
運行結(jié)果例子。更多追問追答追問相同的編號,多行轉(zhuǎn)一行。是這個思路。
但轉(zhuǎn)換后需要再行“揀配”:比如E列只允許放3、7;F列只允許放4、8;G列只允許放2、5 ......(這些條件要求我在宏之外的某個區(qū)域我可以自由填加,如果寫死在宏里就沒有意義了)
aa 3 4 2
bb 7 8 5 6 10 9追答Sub a()
j = 1
For i = 2 To [a65536].End(3).Row
If Range("A" & i) <> Range("A" & i - 1) Then j = j + 1
Range("D" & j) = Range("A" & i)
if not rows(1).find(range("B"&i),lookat:=xlwhole) is nothing then
k= rows(1).find(range("B"&i),lookat:=xlwhole).column
end if
Cells(j, k)= Range("B" & i)
Next
End Sub
用這個代碼試試吧。追問我試了,很好很強大。我不懂宏編寫,但好像只預(yù)留了第一行做條件設(shè)定使用。實際運用中需設(shè)定100行左右的條件,即同一列可揀配100種數(shù)值。(不知可否實現(xiàn),求解)
條件設(shè)定
3 4 2
7 8 6 10 9
轉(zhuǎn)換后
aa 3 4 2
bb 7 8 6 10 9追答Sub a()
j = 101
For i = 2 To [a65536].End(3).Row
If Range("A" & i) <> Range("A" & i - 1) Then j = j + 1
Range("D" & j) = Range("A" & i)
if not rows("E1:IV100").find(range("B"&i),lookat:=xlwhole) is nothing then
k= rows("E1:IV100").find(range("B"&i),lookat:=xlwhole).column
end if
Cells(j, k)= Range("B" & i)
Next
End Sub追問
提示錯誤13,類型不匹配。
追答Sub a()j = 101
For i = 2 To [a65536].End(3).Row
If Range("A" & i) <> Range("A" & i - 1) Then j = j + 1
Range("D" & j) = Range("A" & i)
if not Range("E1:IV100").find(range("B"&i),lookat:=xlwhole) is nothing then
k= Range("E1:IV100").find(range("B"&i),lookat:=xlwhole).column
end if
Cells(j, k)= Range("B" & i)
Next
End Sub
如何利用Excel中的宏編寫程序完成下面的問題?
第一題代碼:
Private Sub Workbook_BeforeClose(Cancel As Boolean)For i = 2 To 6
If Not (IsNumeric(Sheet1.Cells(3, i)) And Sheet1.Cells(3, i) >= 0 And Sheet1.Cells(3, i) <= 100) Then
MsgBox "成績數(shù)字不對!"
cancel = true
Exit For
End If
Next
End Sub
第二題代碼:Sub AA()
Dim ran As Range
For Each ran In Sheet1.UsedRange
If ran > 0 And ran < 60 Then
ran.Font.ColorIndex = 3
ran.Interior.ColorIndex = 6
End If
Next
End Sub
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com