当前位置:懂科普 >

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://dongkepu.com/itkeji/gej09w.html