1.EXCEL中的这个宏代码怎么写
Sub xabc()RandomizeDim s(3, 3)Dim t As Integert = 350s(0, 0) = 0s(0, 1) = 0s(0, 2) = 0s(1, 0) = 0.2s(1, 1) = 0.2s(1, 2) = 0.6s(2, 0) = Int(t * s(1, 0))s(2, 1) = Int(t * s(1, 1))s(2, 2) = t - s(2, 1) - s(2, 0)i = 1Do While Truem = Rnd()If m < s(1, 0) And s(0, 0) < s(2, 0) ThenCells(i, 1) = "A"s(0, 0) = s(0, 0) + 1i = i + 1ElseIf m < s(1, 1) + s(1, 0) And s(0, 1) < s(2, 1) ThenCells(i, 1) = "B"s(0, 1) = s(0, 1) + 1i = i + 1ElseIf m < s(1, 2) + s(1, 0) + s(1, 1) And s(0, 2) < s(2, 2) ThenCells(i, 1) = "C"s(0, 2) = s(0, 2) + 1i = i + 1End IfEnd IfEnd IfIf i > t Then Exit DoLoopEnd Sub'定义的三维数组,第一维用来计数,记下A、B、C各生成了多少第二维是A、B、C所占的比重,如果在三个空格里输入比例,让这儿分别等于三个单元格的值。
第三维是计算出来的A、B、C各自应该多少个。t=350是总数每个位置是什么由随机数来决定。
2.EXCEL中的这个宏代码怎么写
Sub xabc()
Randomize
Dim s(3, 3)
Dim t As Integer
t = 350
s(0, 0) = 0
s(0, 1) = 0
s(0, 2) = 0
s(1, 0) = 0.2
s(1, 1) = 0.2
s(1, 2) = 0.6
s(2, 0) = Int(t * s(1, 0))
s(2, 1) = Int(t * s(1, 1))
s(2, 2) = t - s(2, 1) - s(2, 0)
i = 1
Do While True
m = Rnd()
If m t Then Exit Do
Loop
End Sub
'定义的三维数组,第一维用来计数,记下A、B、C各生成了多少
第二维是A、B、C所占的比重,如果在三个空格里输入比例,让这儿分别等于三个单元格的值。
第三维是计算出来的A、B、C各自应该多少个。
t=350是总数
每个位置是什么由随机数来决定。
3.求一段关于EXCEL复制的宏代码怎么写
Sub aaaa()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Sheets("sheet1").Select
Range("a:b").Select
Selection.Copy
Sheets("sheet3").Select
Range("a:b").Select
ActiveSheet.Paste
a = WorksheetFunction.CountA(Range("a:a"))
b = WorksheetFunction.CountA(Range("b:b"))
Sheets("sheet2").Select
c = WorksheetFunction.CountA(Range("a:a"))
d = WorksheetFunction.CountA(Range("b:b"))
Range("a1:" & "a" & c).Select
Selection.Copy
Sheets("sheet3").Select
Range("a" & a + 1).Select
ActiveSheet.Paste
Sheets("sheet2").Select
Range("b1:" & "b" & d).Select
Selection.Copy
Sheets("sheet3").Select
Range("b" & b + 1).Select
ActiveSheet.Paste
End Sub
4.实现这个功能,EXCEL宏代码如何写
这个不需要用宏,提供以下方法供参考:
一.点"工具"-->;'选项"-->;"重新计算"-->;"手动重算",如图:
-->;'确定",需要计算时,按"F9"键即可.
二.汇总表用透视表替换公式,如图:
修改或添加明细数据后,只需在透视表区域内右击-->;"刷新数据即可,如图:
此法方便快捷灵活准确,建议用此法.
5.关于excel宏的问题 通用宏的代码如何写
给你把每句的含义写上注释吧,因为你的目标不是很明确,你根据注释稍做修改就可以用了
Sub Macro7()
'
' Macro7 Macro
' 宏由 qx 录制,时间: 2007-4-2
'
'
Charts.Add '增加EXCEL图表
ActiveChart.ChartType = xlLineMarkers '指定刚刚新加的EXCEL图表类型
ActiveChart.SetSourceData Source:=Sheets("Sheet7").Range("G5:G34"), PlotBy _
:=xlColumns '指定刚刚新加的EXCEL图表数据源,如果数据源发生变化,修改("Sheet7")为相应工作表名,("G5:G34")为相应区域即可
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet7"
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With '指定刚刚新加的EXCEL图表的坐标
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic '指定刚刚新加的EXCEL图表的坐标格式
ActiveWindow.Visible = False '把当前窗口隐藏,这句挺奇怪的
Windows("Industry_by_province.xls").Activate '激活指定EXCEL文件
Sheets("Sheet7").Select '激活指定的工作表,此处也就是数据源表
End Sub
---------------------------------------------------------
我给你做最最简单的修改吧,在开始由你指定数据源和图表所在工作表的名称。有什么问题可以再问,关键是你想怎么做。
Sub Macro7()
'
' Macro7 Macro
' 宏由 qx 录制,时间: 2007-4-2
'
'
strSheetName=InputBox("请输入数据源Sheet名")
Charts.Add '增加EXCEL图表
ActiveChart.ChartType = xlLineMarkers '指定刚刚新加的EXCEL图表类型
ActiveChart.SetSourceData Source:=Sheets(strSheetName).Range("G5:G34"), PlotBy _
:=xlColumns '指定刚刚新加的EXCEL图表数据源,如果数据源发生变化
ActiveChart.Location Where:=xlLocationAsObject, Name:=strSheetName
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With '指定刚刚新加的EXCEL图表的坐标
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic '指定刚刚新加的EXCEL图表的坐标格式
ActiveWindow.Visible = False '把当前窗口隐藏,这句挺奇怪的
Windows("Industry_by_province.xls").Activate '激活指定EXCEL文件
Sheets(strSheetName).Select '激活指定的工作表,此处也就是数据源表
End Sub
6.excel 宏代码怎么用
在介绍学习VBA之前,应该花几分钟录制一个宏。
新术语:“宏”,指一系列EXCEL能够执行的VBA语句。 以下将要录制的宏非常简单,只是改变单元格颜色。
请完成如下步骤: 1)打开新工作簿,确认其他工作簿已经关闭。 2)选择A1单元格。
调出“常用”工具栏。 3)选择“工具”—“宏”—“录制新宏”。
4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。
★ 宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。
宏名中不允许出现空格。通常用下划线代表空格。
5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。 6)单击“停止录制”工具栏按钮,结束宏录制过程。
※ 如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。 录制完一个宏后就可以执行它了。
1.4 执行宏 当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。
而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行: 1)选择任何一个单元格,比如A3。
2)选择“工具”—“宏”—“宏”,显示“宏”对话框。 3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。
试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。 1.5 查看录制的代码 到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧. 1)选择“工具”—“宏”—“宏”,显示“宏”对话框。
2)单击列表中的“改变颜色”,选择“编辑”按钮。 此时,会打开VBA的编辑器窗口(VBE)。
关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同) Sub 改变颜色() ' ' 改变颜色 Macro ' xw 记录的宏 2000-6-10 ' ' With Selection.Interior .ColorIndex = 3 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With End Sub 将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。
学习VBA或编程语言在某种程度上比较像在学习一种外语。 Sub 改变颜色():这是宏的名称。
中间的以“ '”开头的五行称为“注释”,它在录制宏时自动产生。 以With 开头到End With 结束的结构是With结构语句,这段语句是宏的主要部分。
注意单词“selection”,它代表“突出显示的区域”(即:选定区域)。With Selection.Interior :它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“属性”。
其中: .ColorIndex = 3: 将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。
另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将3改为其他数字试试看。 .Pattern = xlSolid:设置该区域的内部图案。
由于是录制宏,所以,虽然你并未设置这一项,宏仍然将其记录下来(因为在“图案”选项中有此一项,只是你为曾设置而已)。xlSolid表示纯色。
.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。 End With:结束With 语句。
End Sub:整个宏的结束语 1.6 编辑录制的代码 在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句?现在,在宏中作一个修改,删除多余行,直到和下面代码相同: Sub 改变颜色() ' ' 改变颜色 Macro ' xw 记录的宏 2000-6-10 ' ' With Selection.Interior .ColorIndex = 3 End With End Sub 完成后,在工作表中试验一下。
你会发现结果和修改前的状况一样。在With 语句前加入一行: Range("A5").Select 试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红. 现在可以看到,编辑录制的宏同样非常简单。
需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。
二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。
比如:加入判断或循环等无法录制的语句。 1.7 录制宏的局限性 希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有: 1)录制的宏无判断或循环能力. 2)人机交互能力差,即用户无法进行输入,计算机无法给出提示. 3)无法显示EXCEL对话框. 4)无法显示自定义窗体. 1.8 小结 本课中,你已经掌握了VBA的一些基础知识,你会录制宏、编辑宏而且了解了录制宏的局限性.你很努力.并且已经为将来学习VBA甚至VB等编程语言打下了基础.关键是你已经了解了一个谜底,就是说,你了解了什么是编程.下面是些小练习,做完后才可以去玩哟. 思考: 1)VBA只能用于EXCEL吗? 2)VBA是基于哪种语言? 3)说说EXCEL和VBA的关系. 4)为什么要用宏? 第二课 处理录制的宏 2.1 。
7.excel宏怎么写代码
Sub AB比较插入空格()
Dim n%, i%, j%, k%, Arr, ArrOut()
n = Cells(Rows.Count, "A").End(xlUp).Row
If Cells(Rows.Count, "B").End(xlUp).Row > n Then n = Cells(Rows.Count, "B").End(xlUp).Row
Arr = Range(Cells(1, 1), Cells(n + 1, 2))
Arr(n + 1, 1) = "最": Arr(n + 1, 2) = "最"'改成最大的字符。
ReDim ArrOut(1 To 2 * n + 2, 1 To 2)
i = 1: j = 1: k = 1
Do
If Arr(i, 1) Arr(j, 2) Then ArrOut(k, 1) = "": ArrOut(k, 2) = Arr(j, 2): j = j + 1: k = k + 1: Debug.Print i, j, k
If Arr(i, 1) = Arr(j, 2) Then ArrOut(k, 1) = Arr(i, 1): ArrOut(k, 2) = Arr(j, 2): i = i + 1: j = j + 1: k = k + 1: Debug.Print i, j, k
Loop Until ((i > n) And (j > n))
[A1].Resize(k - 2, 2) = ArrOut
End Sub
8.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宏代码怎么写