❶ 求一份关于Excel宏编写的教程(电子版,不要视频)

我的网络空间里有Excel疑难千寻千解丛书的3本书电子版(操作与技巧、函数与公式、VBA编程与实践)下载链接,可以下载看看
http://hi..com/gouweicao78/blog/item/b1a889cbf105ad57f31fe759.html

❷ excel宏怎么写代码

SubAB比较插入空格()
Dimn%,i%,j%,k%,Arr,ArrOut()
n=Cells(Rows.Count,"A").End(xlUp).Row
IfCells(Rows.Count,"B").End(xlUp).Row>nThenn=Cells(Rows.Count,"B").End(xlUp).Row
Arr=Range(Cells(1,1),Cells(n+1,2))
Arr(n+1,1)="最":Arr(n+1,2)="最"'改成最大的字符。
ReDimArrOut(1To2*n+2,1To2)
i=1:j=1:k=1
Do
IfArr(i,1)<Arr(j,2)ThenArrOut(k,1)=Arr(i,1):ArrOut(k,2)="":i=i+1:k=k+1:Debug.Printi,j,k
IfArr(i,1)>Arr(j,2)ThenArrOut(k,1)="":ArrOut(k,2)=Arr(j,2):j=j+1:k=k+1:Debug.Printi,j,k
IfArr(i,1)=Arr(j,2)ThenArrOut(k,1)=Arr(i,1):ArrOut(k,2)=Arr(j,2):i=i+1:j=j+1:k=k+1:Debug.Printi,j,k
LoopUntil((i>n)And(j>n))
[A1].Resize(k-2,2)=ArrOut
EndSub

❸ excel2010宏vba代码怎么编写

首先,我建了一个演示示例。本文要通过宏实现的功能是将A列中","号之前的文字提取出来.

在Sheet1右键,选择查看代码

弹出VBA编辑页面

在Sheet1代码编辑页面输入代码:
Sub test()Dim i As IntegerFor i = 1 To 50 Step 1       Range("B" & i).Select       ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],FIND("","",RC[-1])-1)"Next
End Sub

输入完成点击保存,在弹出的对话框中点击是。

接着又弹出一个对话框,点确定往下走。其实这两步可以通过一些设置来避免弹出提示的,我将会在以后的经验中与大家分享。

然后点击视图-宏

选择查看宏

在宏列表中选择要执行的宏,点击执行。

excel工作表中立马有了变化,我们可以看以B列中完美显示了A列中“,”之前对应的内容,通过调用宏,我们实现了预定的功能。

❹ 问:excel里怎么编写宏代码实现:

Sub 宏1()
If Cells(4, 15) = 1 Or Cells(4, 15) = 4 Then
Cells(7, 5) = Cells(7, 5) + Cells(7, 18)
Cells(7, 5) = Cells(7, 5) + Cells(7, 18)
‘。。。
ElseIf Cells(4, 15) = 2 Or Cells(4, 15) = 3 Then
Cells(7, 5) = Cells(7, 5) - Cells(7, 18)
Cells(7, 5) = Cells(7, 5) - Cells(7, 18)
’。。。
End If
End Sub

❺ excel 宏命令编写

AF3公式:
=SUM(IF((C2:AD2>60)*ISNUMBER(C2:AD2),(C2:AD2-50)/10*C$37:AD$37))+SUM(IF(ISTEXT(C2:AD2),CHOOSE(FIND(LEFT(C2:AD2),"优良中及不"),4.5,3.5,2.5,1.5,0)*C$37:AD$37))
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。
AG3公式:
=SUMPRODUCT((C2:AD2<>"")*C$37:AD$37)
将公式向下复制。
AH3公式:
=IF(AF3="","",AF3/AG3)
向下复制公式。

❻ excel宏编程教程有哪些

一、宏的自学。首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏:点击excel" 工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编 辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。

二、基本概念。为了学习excel中的宏,我们需要先了解以下一些基本概念。

1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook

Workbooks集合包含excel中所有当前打开的excel工作簿,亦即所有打开的excel文件;Workbook对应Workbooks中的成员,即其中的excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。

在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、 Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。

2、工作表:Worksheets、Worksheet、ActiveSheet

Worksheets集合包含工作簿中所有的工作表,即一个excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。

可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、 Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边 的)为Worksheets.Count。需要注意的是:在使用过程中excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。

3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart

Chart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。

Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index) 可引用单个Chart图表,其中index是该图表工作表的索引号或名称;如Charts(1)、Charts("销售图表")。图表工作表的索引号表示 图表工作表在工作簿的工作表标签栏上的位置。Charts(1)是工作簿中第一个(最左边的)图表工作表;Charts(Charts.Count)为最后一个(最右边的)图表工作表。

三、

1、对于从没使用过Excel宏功能的话,一般要先进行添加“宏”选项,具体路径就是点击左上角的微软图标,依次选择:“Excel选项”-“常用”,勾选“功能区显示开发工具选项卡”,然后就可以看到在Excel选项卡中就多了一个“开发工具”的选项。

2、在Excel选项卡上选择“开发工具”,开始宏的录制,选中B3单元格的文字【网络网页】,点击选择“录制宏”。

3、这时,会弹出一个“录制新宏”的对话框,我们想要将【网络网页】进行加粗和变红的操作,因此,将宏的名称命名为“加粗变红”,同时设定快捷键便于快速调用,小编建议大家使用大写字母的快捷键,最后点击“确定”按钮开始录制。

4、按照我们录制宏的目的,选择“开始”选项卡,对于【网络网页】进行加粗和变红的操作。

5、完成以后切换到“开发工具”选项卡,点击“停止录制”按钮。这样,命名为“加粗变红”的宏就录制好了。

❼ 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 中的宏如何编制,需要输入什么代码

EXCEL中的宏是使用VB来编写的,你按Alt+F11就可以启动宏编辑器,看到类似于VB的开发界面。

❾ 在Excel的实际应用中,请问:1.怎样编写“宏”代码2.怎样编写“脚本”代码

楼上的回答很好。当然有相应的书,书店有,网上也能搜索到。

我特别要说的第一点是:VBA本身的帮助系统非常全面,我记性不好,几乎每次写VBA的时候都要查一下手册。

第二点,许多详细的语句是可以通过录制宏来得到例子代码,其实我们要写的许多脚本是可以录制的,然后修改一下,比如用for或者while写个循环来往复做。

VBA的语法基本上和VB差不多,只要知道一些EXCEL的对象结构就好编程,下面是我写的一个例子代码,本程序是我工作需要的一个任务抽象出来的:把基层公司上报的多个EXCEL文件里面某个表的内容串起来,本来也可以手工去复制粘贴,但是分公司数十个,个别公司更新数据的时候很麻烦,你看看,可以对“宏”有个直观的认识:

PrivateSubCommandButton1_Click()
IfCells(1,1)<>"结果:"Then
Cells(1,2)="A1的内容是否被修改,程序不敢贸然转换!"
ExitSub
EndIf
ForEachwInWorkbooks
Ifw.Name=Cells(6,2)Then
Cells(1,2)="先关闭要导入的文件,如果是本文件名字与要导入的相同,请关闭后充命名再打开!"
ExitSub
EndIf
Nextw
IfMsgBox("程序无法判断是否重复导入,请慎重选择!",vbYesNo,"警告")<>vbYesThenExitSub
Cells(1,2)="开始转换,耐心等待。。。"
'定位本表的指定工作薄到变量target_sheet里面
ForEachtarget_sheetInSheets
Iftarget_sheet.Name=Cells(2,2)ThenExitFor
Nexttarget_sheet
Iftarget_sheet.Name<>Cells(2,2)Then
Cells(1,2)="本工作薄里面没有找到指定的工作表["&Cells(2,2)&"]。"
EndIf
'找到本工作薄指定工作表的最后一行
k=Cells(3,2)
Whiletarget_sheet.Cells(k,1)<>""Ortarget_sheet.Cells(k,2)<>""Ortarget_sheet.Cells(k,3)<>""
k=k+1
Wend
i=7
ok_list=""
WhileCells(i,3)<>""
IfCells(i,3)="1"Then
'f=MsgBox(Cells(i,2),vbYesNo,"即将转换的文件。。。")
st=Dir(Cells(i,2))
Ifst=""Then
Cells(1,2)="文件["&Cells(i,2)&"]不存在,转换终止"
ExitSub
EndIf
'打开文件,打开后ActiveWorkbook指向新的工作薄
Workbooks.OpenCells(i,2)
'定位新打开的工作薄
'ForEachnew_bookInWorkbooks
'Ifnew_book.Name=Cells(i,2)ThenExitFor
'Nextnew_book
'检测工作表是否存在
ForEachsource_sheetInActiveWorkbook.Sheets
Ifsource_sheet.Name=Cells(2,2)ThenExitFor
Nextsource_sheet
Ifsource_sheet.Name<>Cells(2,2)Then
ActiveWorkbook.Close
Cells(1,2)="文件["&Cells(i,2)&"]中不存在指定的工作表["&Cells(2,2)&"],转换终止"
ExitSub
EndIf
'循环导入所有行
j=Cells(3,2)
Whilesource_sheet.Cells(j,1)<>""Orsource_sheet.Cells(j,2)<>""Orsource_sheet.Cells(j,3)<>""
'导入一行
source_sheet.Rows(j).Copytarget_sheet.Rows(k)
'Forx=1ToCells(4,2)
'target_sheet.Cells(k,x)=source_sheet.Cells(j,x)
'Nextx
j=j+1
k=k+1
Wend
ActiveWorkbook.Close
Ifok_list=""Then
ok_list=Cells(i,1)
Else
ok_list=ok_list&"、"&Cells(i,1)
EndIf
Cells(i,3)=0
Cells(i,4)="√"
EndIf
i=i+1
Wend
Cells(1,2)="恭喜你,本次转换完成:"&ok_list
EndSub