永发信息网

用vba和宏编程将表格sheet1的数据在sheet2中以图表的形式表示,下面提供数据给大家看看!

答案:2  悬赏:70  手机版
解决时间 2021-03-24 14:33
  • 提问者网友:听门外雪花风
  • 2021-03-24 09:41
用vba和宏编程将表格sheet1的数据在sheet2中以图表的形式表示,下面提供数据给大家看看!
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-03-24 10:02
Sub 画图()
    Dim FR As Integer
    Dim LR As Integer
    Dim ZB0 As Double
    Dim ZB1 As Double
    FR = InputBox("输入数据区域开始行号")
    LR = InputBox("输入数据区域结束行号")
    Sheets(2).Range("a1") = 0
    Sheets(2).Range("b1") = 1
    Sheets(2).Range("A2:B2").Style = "percent"
    Sheets(3).Activate
    'MsgBox Application.WorksheetFunction.Sum(Range("a" & FR & ":a" & LR))
    ZB0 = Application.WorksheetFunction.CountIf(Sheets(3).Range("a" & FR & ":a" & LR), "0") / LR
    ZB1 = Application.WorksheetFunction.CountIf(Sheets(3).Range("a" & FR & ":a" & LR), "1") / LR
    'MsgBox ZB0 & "---" & ZB1
    Sheets(2).Activate
    Sheets(2).Range("a2") = ZB0
    Sheets(2).Range("b2") = ZB1
    Range("a2:b2").Select
    ActiveSheet.Shapes.AddChart2(251, xlDoughnut).Select
    ActiveChart.SetSourceData Source:=Range("Sheet2!$a$2:$b$2")
    ActiveChart.FullSeriesCollection(1).Select
    ActiveChart.FullSeriesCollection(1).ApplyDataLabels
End Sub


这个你可以直接使用
Sub 画图()
    Dim FR As Integer
    Dim LR As Integer
    Dim ZB0 As Double
    Dim ZB1 As Double
    FR = InputBox("输入数据区域开始行号")
    LR = InputBox("输入数据区域结束行号")
    Sheets(2).Range("a1") = 0
    Sheets(2).Range("b1") = 1
    Sheets(2).Range("A2:B2").Style = "percent"
    Sheets(1).Activate
    'MsgBox Application.WorksheetFunction.Sum(Range("a" & FR & ":a" & LR))
    ZB0 = Application.WorksheetFunction.CountIf(Sheets(1).Range("b" & FR & ":b" & LR), "0") / LR
    ZB1 = Application.WorksheetFunction.CountIf(Sheets(1).Range("b" & FR & ":b" & LR), "1") / LR
    'MsgBox ZB0 & "---" & ZB1
    Sheets(2).Activate
    Sheets(2).Range("a2") = ZB0
    Sheets(2).Range("b2") = ZB1
    Range("a2:b2").Select
    ActiveSheet.Shapes.AddChart2(251, xlDoughnut).Select
    ActiveChart.SetSourceData Source:=Range("Sheet2!$a$2:$b$2")
    ActiveChart.FullSeriesCollection(1).Select
    ActiveChart.FullSeriesCollection(1).ApplyDataLabels
End Sub追问看了你的代码,我稍微修改了下能用,但是能不能直接的显示,而不用inputbox(“输入数据区域”)呢?因为我这一个文件夹里面txt文件很多,虽然格式都是一样,但是长短不一,有没有解决方法直接显示的?还有就是我想关闭excel后还原初始状态,意思就是没有了,下次打开运行我自己显示数据的代码和你显示图表的代码,又会出现。麻烦你解决,先谢谢您的帮助!追答Sub 画图()
Dim FR As Integer
Dim LR As Integer
Dim ZB0 As Double
Dim ZB1 As Double
Sheets(2).Range("a1") = 0
Sheets(2).Range("b1") = 1
Sheets(2).Range("A2:B2").Style = "percent"
Sheets(1).Activate
fr=1

lr=cells.find("*",,,,1,2).row

'MsgBox Application.WorksheetFunction.Sum(Range("a" & FR & ":a" & LR))
ZB0 = Application.WorksheetFunction.CountIf(Sheets(1).Range("b" & FR & ":b" & LR), "0") / LR
ZB1 = Application.WorksheetFunction.CountIf(Sheets(1).Range("b" & FR & ":b" & LR), "1") / LR
'MsgBox ZB0 & "---" & ZB1
Sheets(2).Activate
Sheets(2).Range("a2") = ZB0
Sheets(2).Range("b2") = ZB1
Range("a2:b2").Select
ActiveSheet.Shapes.AddChart2(251, xlDoughnut).Select
ActiveChart.SetSourceData Source:=Range("Sheet2!$a$2:$b$2")
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).ApplyDataLabels
End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯