當前位置:生活全書館 >

IT科技

> 怎麼在excel編寫簡單的巨集

怎麼在excel編寫簡單的巨集

首先,我建了一個演示示例。本文要通過巨集實現的功能是將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

標籤: excel 編寫
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/mkxpyw.html