怎麼在excel編寫簡單的巨集
- IT科技
- 關注:1.09W次
首先,我建了一個演示示例。本文要通過巨集實現的功能是將A列中","號之前的文字提取出來. 在Sheet1右鍵,選擇檢視程式碼 彈出VBA編輯頁面 在Sheet1程式碼編輯頁面輸入程式碼: Sub test()Dim i As IntegerFor i = 1 To 50 Step 1 Range("B" & i).Select
本文我們將從以下幾個部分來詳細介紹如何在 Microsoft Excel 編寫簡單的巨集:啟用巨集、錄製巨集、使用巨集
本文將會教你如何在Excel中建立簡單的巨集。部分 1啟用巨集
第一步開啟選單中的檢視->工具箱->控制元件工具箱->點選一下工具箱中的命令按鈕,然後在你指定的位置按滑鼠左鍵拉一個方框建立一個命令按鈕,然後雙擊該按鈕進入VBA編輯模式,再把下面的程式碼裡分隔線之間的程式碼貼上進去,再回到工作表,點選 控制元件工具箱中
第1步:開啟Excel。
一個建議:VBA內容很多,學不完的,不要去買什麼大全。 另外一個建議:其實VBA程式設計可以錄製巨集來修改,看不懂的可以按F1檢視幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網上隨便看幾個網頁的入門教程就可以程式設計了。
在Excel 2010、2013和2016中,啟用巨集的方法是一樣的。但是和Mac版本的Excel還是有些許不同,後文會具體介紹。
sub 選擇() activesheet.[a4:f6].select end sub
第2步:點選檔案標籤。
巨集的功能比函式要強啊.巨集可以呼叫函式,反過來好像不行吧. 巨集就是程式設計了.嵌入office的vb,也叫vba.微軟叫vba. 說到程式設計,那她還能呼叫其他的東西. 總之,使用巨集想怎麼計算就怎麼計算.
在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()類似自定義的函式,但是無法找到這個巨集或者巨集的程式碼,請問哪位大俠指點一下。
在Mac版本的Excel中,點選“偏好設定”。
在excel2007環境下: 首先回答你錄製巨集的作用:使簡單重複的動作做精妙 例如:想要在1-1000行裡面每隔一行就插入一行。這時候你就可以錄製一個巨集,按住快捷鍵,就可以快速完成此項動作,而且非常準確避免人為的眼花!O(∩_∩)O哈哈哈~ 具體操作如
第4步:點選自定義功能區選項。
軟體版本:Office2013 方法如下: 1.Alt+F11,開啟VBE介面,點選左側要執行程式碼的工作表,出現右側空白編輯區 2.輸入程式碼,點選執行按鈕,或者按F5: 3.這樣,就執行了巨集程式碼:
在Mac版本的Excel中,在“編輯”區域中,點選“功能區和工具欄”。
一個建議:VBA內容很多,學不完的,不要去買什麼大全。 另外一個建議:其實VBA程式設計可以錄製巨集來修改,看不懂的可以按F1檢視幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網上隨便看幾個網頁的入門教程就可以程式設計了。
第5步:在右側列表中點選開發者。
1、新建一工作表。 2、在sheet1中插入一個藝術字(藝術字將成為按鈕)。 3、右擊藝術字→指定巨集→新建。 4、複製以下程式碼,就會在sheet1的A列中出現結果。(若要隨機可插入Rnd函式)。 Sub 藝術字1_單擊() step_a: a = InputBox("A的比例(請輸入
在Mac版本的Excel中,你可以從“標籤或組標題”中找到“開發者”。
個人只能簽署本機證書,如果遷移到其他電腦,需要重新簽署 在開始選單中如下操作 Microsoft Office->Microsoft Office 工具->VBA 專案的數字證書->輸入證書名稱(隨意)->確定 這樣證書就生成了,然後開啟VBA 在選單中 選項->數字簽名->選擇->點
第6步:點選確定。
相同的編號,多行轉一行? 問你怎麼不回答? 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)
你可以在標籤列表末尾看到開發者標籤頁。
第一題程式碼: 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步:練習巨集動作。
在介紹學習VBA之前,應該花幾分鐘錄製一個巨集。 新術語:“巨集”,指一系列EXCEL能夠執行的VBA語句。 以下將要錄製的巨集非常簡單,只是改變單元格顏色。請完成如下步驟: 1)開啟新工作簿,確認其他工作簿已經關閉。 2)選擇A1單元格。調出“常用”工具欄
當你錄製巨集時,你的任何點選或動作都會被錄下來,所以一個小失誤會導致整個動作的失敗。你可以多練習幾次要做的動作,這樣在錄製時可以毫不猶豫地完成整個動作,不會出現失誤。
有人有很詳細的圖文指引,我就不唧唧歪歪了 https://jingyan.baidu.com/article/2c8c281df745d90008252acd.html
第2步:點選開發者標籤。
可以在A6中輸入題號,利用vlookup,根據題號查詢題目和相應的選項。上、下一題按鈕分別減、加題號。基本上思路就是這樣。
第3步:點選 錄製巨集。
sub 折扣後單價() for i=2 to cells(65536,1).end(xlup).row if cells(i,1)
你可以在命令區中找到它,也可以按下Alt+T+M+R,新建一個巨集(只適用於Windows系統)。
首先,我建了一個演示示例。本文要通過巨集實現的功能是將A列中","號之前的文字提取出來. 在Sheet1右鍵,選擇檢視程式碼 彈出VBA編輯頁面 在Sheet1程式碼編輯頁面輸入程式碼: Sub test()Dim i As IntegerFor i = 1 To 50 Step 1
第4步:給巨集命名。
比如你要迴圈返回 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
命名方法最好簡單一些(特別是你要建立多個巨集的時候)。
Private Sub CommandButton1_Click() With Selection .Interior.Color = [i14].Interior.Color End With End Sub
你還可以給巨集新增描述,說明這個巨集可以實現什麼效果。
H3輸入公式:(MAX(E3:G3))/(1.5*D3) 然後設定單元格格式為百分比。個人認為用公式解決更快些
第5步:點選快捷鍵區域。
按鈕的名稱是按鈕的captin屬性 按按鈕是按鈕的click事件。 Private Sub CommandButton1_Click() 在當前工作表單元格A1中顯示 range("A1")=CommandButton1.caption 在對話方塊中顯示 msgbox CommandButton1.caption End Sub
你可以給巨集新增鍵盤快捷鍵,這樣可以輕鬆執行它,不過這不是必須的。
不是這個巨集的 問題, 有其他程式碼 或者模組 設定了保護, 最好有原檔案看看 [email protected]
第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
這樣可以建立一個“Ctrl+Shift+字母”的快捷鍵組合,方便啟用巨集。
Private Sub Workbook_open() 【功能程式碼】 End Sub 或者 Private Sub Workbook_open() Call【程式碼名】 End Sub Workbook_open事件程式碼為工作簿程式碼,一定要放在Thisworkbook模組內,否則不會自動執行。
在Mac上,鍵盤快捷鍵的組合是“Opt+Command+字母”。
你之前A1中有沒有資料呢?如果有的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步:選擇儲存巨集的位置。
如果你只是在當前工作表中使用這個巨集,選擇“當前工作簿”;如果你希望在任意工作表中使用,選擇“個人巨集工作簿”。
第9步:點選確定。
現在,巨集開始錄製了。
第10步:開始執行你要錄製的命令。
現在,你做的任何動作都會被錄製並記錄在巨集裡。比如,如果你想計算A2和B2的總和,並記錄在C7中,那麼以後每次執行巨集都會計算A2和B2的總和,然後放到C7中。
巨集可以很複雜,你還可以通過它啟用其它Office程式。開始錄製後,你在Excel中的任何操作都會新增到巨集中。
第11步:當你執行完後,點選停止錄製。
點選之後,巨集會停止錄製,並儲存起來。
第12步:將檔案儲存成啟用巨集的格式。
為了儲存你的巨集,你需要將工作簿儲存成可以啟用巨集的特殊Excel格式:
點選“檔案”選單,選擇“儲存”。
在檔名下方,點選“檔案格式”選單。
選擇“啟用巨集的Excel工作簿”。
部分 3使用巨集
第1步:開啟包含了巨集的工作簿。
如果你在執行巨集之前已經關閉了檔案,程式會提示你啟用內容。
第2步:點選啟用內容。
當你開啟一個包含巨集的工作簿時,Excel資料表格會彈出安全警告,裡面就有該選項。由於這是你的私人文件,所以你可以信任它,但是開啟其它來源的檔案時,需要格外小心。
第3步:按下巨集的快捷鍵。
當你要使用巨集時,可以按下你設定的快捷鍵快速執行它。
第4步:在開發者標籤頁中,點選巨集按鈕。
當前工作簿中所有可用巨集都會顯示出來。
第5步:點選你要執行的巨集。
第6步:點選執行按鈕。
你的巨集會在當前或選中的單元格中執行。
第7步:檢視巨集的程式碼。
如果你想了解巨集的執行方法,可以開啟你建立的巨集,並且對它進行修改:
在開發者標籤頁中,點選“巨集”按鈕。
點選你想檢視的巨集。
點選“編輯”按鈕。
在VB命令編輯視窗中,檢視巨集程式碼。
擴充套件閱讀,以下內容您可能還感興趣。
零基礎,想開始自學VBA,在EXCEL中編寫一些巨集,給推薦幾個本書,謝謝
一個建議:VBA內容很多,學不完的,不要去買什麼大全。
另外一個建議:其實VBA程式設計可以錄製巨集來修改,看不懂的可以按F1檢視幫助解釋和例子,只有入門的幾天需要看書。
因此,一般網上隨便看幾個網頁的入門教程就可以程式設計了。
EXCEL巨集程式碼編寫
1、新建一工作表。
2、在sheet1中插入一個藝術字(藝術字將成為按鈕)。
3、右擊藝術字→指定巨集→新建。
4、複製以下程式碼,就會在sheet1的A列中出現結果。(若要隨機可插入Rnd函式)。
Sub 藝術字1_單擊()
step_a:
a = InputBox("A的比例(請輸入數字):")
If Not (IsNumeric(a)) Then
MsgBox "輸入不是數字,程式終止。"
Exit Sub
End If
a1 = a / 100 * 350
If a1 <> Int(a1) Then
MsgBox "A的個數=350*" & a & "%=" & a1 & "個,數量不是整數,請重新輸入。"
GoTo step_a
End If
step_b:
b = InputBox("B的比例(請輸入整數):")
If Not (IsNumeric(b)) Then
MsgBox "輸入不是數字,程式終止。"
Exit Sub
End If
b1 = b / 100 * 350
If b1 <> Int(b1) Then
MsgBox "B的個數=350*" & b & "%=" & b1 & "個,數量不是整數,請重新輸入。"
GoTo step_b
End If
MsgBox "C的比例=1-A的比例-B的比例=" & 100 - a - b & "%"
Sheet1.Cells(1, 2) = "A的數量= " & a1 & "個"
Sheet1.Cells(2, 2) = "B的數量= " & b1 & "個"
Sheet1.Cells(3, 2) = "C的數量= " & 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 專案的數字證書->輸入證書名稱(隨意)->確定
這樣證書就生成了,然後開啟VBA
在選單中 選項->數字簽名->選擇->點選剛才生成的證書->確定
求EXCEL巨集編寫
相同的編號,多行轉一行?
問你怎麼不回答?
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
執行結果例子。更多追問追答追問相同的編號,多行轉一行。是這個思路。
但轉換後需要再行“揀配”:比如E列只允許放3、7;F列只允許放4、8;G列只允許放2、5 ......(這些條件要求我在巨集之外的某個區域我可以自由填加,如果寫死在巨集裡就沒有意義了)
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
用這個程式碼試試吧。追問我試了,很好很強大。我不懂巨集編寫,但好像只預留了第一行做條件設定使用。實際運用中需設定100行左右的條件,即同一列可揀配100種數值。(不知可否實現,求解)
條件設定
3 4 2
7 8 6 10 9
轉換後
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 "成績數字不對!"
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
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/mkxpyw.html