關閉→
當前位置:知科普>IT科技>怎麼在excel編寫簡單的宏

怎麼在excel編寫簡單的宏

知科普 人氣:1.02W

首先,我建了一個演示示例。本文要通過宏實現的功能是將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編輯模式,再把下面的代碼裏分隔線之間的代碼粘貼進去,再回到工作表,點擊 控件工具箱中

怎麼在excel編寫簡單的宏

第1步:打開Excel。

一個建議:VBA內容很多,學不完的,不要去買什麼大全。 另外一個建議:其實VBA編程可以錄製宏來修改,看不懂的可以按F1查看幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網上隨便看幾個網頁的入門教程就可以編程了。

在Excel 2010、2013和2016中,啟用宏的方法是一樣的。但是和Mac版本的Excel還是有些許不同,後文會具體介紹。

sub 選擇() activesheet.[a4:f6].select end sub

怎麼在excel編寫簡單的宏 第2張

第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

怎麼在excel編寫簡單的宏 第3張

第3步:點擊 選項。

我的excel中也有argument()類似自定義的函數,但是無法找到這個宏或者宏的代碼,請問哪位大俠指點一下。

在Mac版本的Excel中,點擊“偏好設置”。

在excel2007環境下: 首先回答你錄製宏的作用:使簡單重複的動作做精妙 例如:想要在1-1000行裏面每隔一行就插入一行。這時候你就可以錄製一個宏,按住快捷鍵,就可以快速完成此項動作,而且非常準確避免人為的眼花!O(∩_∩)O哈哈哈~ 具體操作如

怎麼在excel編寫簡單的宏 第4張

第4步:點擊自定義功能區選項。

軟件版本:Office2013 方法如下: 1.Alt+F11,打開VBE界面,點擊左側要執行代碼的工作表,出現右側空白編輯區 2.輸入代碼,點擊運行按鈕,或者按F5: 3.這樣,就執行了宏代碼:

在Mac版本的Excel中,在“編輯”區域中,點擊“功能區和工具欄”。

一個建議:VBA內容很多,學不完的,不要去買什麼大全。 另外一個建議:其實VBA編程可以錄製宏來修改,看不懂的可以按F1查看幫助解釋和例子,只有入門的幾天需要看書。 因此,一般網上隨便看幾個網頁的入門教程就可以編程了。

怎麼在excel編寫簡單的宏 第5張

第5步:在右側列表中點擊開發者。

1、新建一工作表。 2、在sheet1中插入一個藝術字(藝術字將成為按鈕)。 3、右擊藝術字→指定宏→新建。 4、複製以下代碼,就會在sheet1的A列中出現結果。(若要隨機可插入Rnd函數)。 Sub 藝術字1_單擊() step_a: a = InputBox("A的比例(請輸入

在Mac版本的Excel中,你可以從“標籤或組標題”中找到“開發者”。

個人只能簽署本機證書,如果遷移到其他電腦,需要重新簽署 在開始菜單中如下操作 Microsoft Office->Microsoft Office 工具->VBA 項目的數字證書->輸入證書名稱(隨意)->確定 這樣證書就生成了,然後打開VBA 在菜單中 選項->數字簽名->選擇->點

怎麼在excel編寫簡單的宏 第6張

第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

怎麼在excel編寫簡單的宏 第7張

第1步:練習宏動作。

在介紹學習VBA之前,應該花幾分鐘錄製一個宏。 新術語:“宏”,指一系列EXCEL能夠執行的VBA語句。 以下將要錄製的宏非常簡單,只是改變單元格顏色。請完成如下步驟: 1)打開新工作簿,確認其他工作簿已經關閉。 2)選擇A1單元格。調出“常用”工具欄

當你錄製宏時,你的任何點擊或動作都會被錄下來,所以一個小失誤會導致整個動作的失敗。你可以多練習幾次要做的動作,這樣在錄製時可以毫不猶豫地完成整個動作,不會出現失誤。

有人有很詳細的圖文指引,我就不唧唧歪歪了 https://jingyan.baidu.com/article/2c8c281df745d90008252acd.html

怎麼在excel編寫簡單的宏 第8張

第2步:點擊開發者標籤。

可以在A6中輸入題號,利用vlookup,根據題號查詢題目和相應的選項。上、下一題按鈕分別減、加題號。基本上思路就是這樣。

怎麼在excel編寫簡單的宏 第9張

第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    

怎麼在excel編寫簡單的宏 第10張

第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) 然後設置單元格格式為百分比。個人認為用公式解決更快些

怎麼在excel編寫簡單的宏 第11張

第5步:點擊快捷鍵區域。

按鈕的名稱是按鈕的captin屬性 按按鈕是按鈕的click事件。 Private Sub CommandButton1_Click() 在當前工作表單元格A1中顯示 range("A1")=CommandButton1.caption 在對話框中顯示 msgbox CommandButton1.caption End Sub

你可以給宏添加鍵盤快捷鍵,這樣可以輕鬆運行它,不過這不是必須的。

不是這個宏的 問題, 有其他代碼 或者模塊 設置了保護, 最好有原文件看看 [email protected]

怎麼在excel編寫簡單的宏 第12張

第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 這樣才對。

怎麼在excel編寫簡單的宏 第13張

第7步:點擊保存宏。

怎麼在excel編寫簡單的宏 第14張

第8步:選擇保存宏的位置。

如果你只是在當前工作表中使用這個宏,選擇“當前工作簿”;如果你希望在任意工作表中使用,選擇“個人宏工作簿”。

怎麼在excel編寫簡單的宏 第15張

第9步:點擊確定。

現在,宏開始錄製了。

怎麼在excel編寫簡單的宏 第16張

第10步:開始執行你要錄製的命令。

現在,你做的任何動作都會被錄製並記錄在宏裏。比如,如果你想計算A2和B2的總和,並記錄在C7中,那麼以後每次運行宏都會計算A2和B2的總和,然後放到C7中。

宏可以很複雜,你還可以通過它啟用其它Office程序。開始錄製後,你在Excel中的任何操作都會添加到宏中。

怎麼在excel編寫簡單的宏 第17張

第11步:當你執行完後,點擊停止錄製。

點擊之後,宏會停止錄製,並保存起來。

怎麼在excel編寫簡單的宏 第18張

第12步:將文件保存成啟用宏的格式。

為了保存你的宏,你需要將工作簿保存成可以啟用宏的特殊Excel格式:

點擊“文件”菜單,選擇“保存”。

在文件名下方,點擊“文件格式”菜單。

選擇“啟用宏的Excel工作簿”。

部分 3使用宏

怎麼在excel編寫簡單的宏 第19張

第1步:打開包含了宏的工作簿。

如果你在運行宏之前已經關閉了文件,程序會提示你啟用內容。

怎麼在excel編寫簡單的宏 第20張

第2步:點擊啟用內容。

當你打開一個包含宏的工作簿時,Excel數據表格會彈出安全警告,裏面就有該選項。由於這是你的私人文檔,所以你可以信任它,但是打開其它來源的文件時,需要格外小心。

怎麼在excel編寫簡單的宏 第21張

第3步:按下宏的快捷鍵。

當你要使用宏時,可以按下你設置的快捷鍵快速運行它。

怎麼在excel編寫簡單的宏 第22張

第4步:在開發者標籤頁中,點擊宏按鈕。

當前工作簿中所有可用宏都會顯示出來。

怎麼在excel編寫簡單的宏 第23張

第5步:點擊你要運行的宏。

怎麼在excel編寫簡單的宏 第24張

第6步:點擊運行按鈕。

你的宏會在當前或選中的單元格中運行。

怎麼在excel編寫簡單的宏 第25張

第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

TAG標籤:#excel #編寫 #