EXCEL宏代码编写

2024-12-03 13:21:56
推荐回答(2个)
回答1:

给你把每句的含义写上注释吧,因为你的目标不是很明确,你根据注释稍做修改就可以用了

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

回答2:

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