• 第一种vba自动筛选数据自动生成折线图的脚本(自动化)


    Sub 数据整理()
    Dim iAreaCount As Integer
    Dim i As Integer
    Dim sTemp, sTemp2 As String
    Dim iTemp As Long
    Dim bFind As Boolean


    Dim ValueName() As String
    Dim ValueValue() As Double
    Dim ValueDate() As Date

    Dim iHour, iMinute, iSecond As Integer
    Dim iIndex As Integer

    Worksheets("Sheet1").Activate
    Range("A1").CurrentRegion.Select
    iAreaCount = Selection.Rows.Count

    ReDim ValueName(iAreaCount)
    ReDim ValueValue(iAreaCount)
    ReDim ValueDate(iAreaCount)

    Sheets.Add After:=Sheets("Sheet1")
    ActiveSheet.Name = "CPU"

    Sheets.Add After:=Sheets("Sheet1")
    ActiveSheet.Name = "MEM"


    For i = 1 To iAreaCount
    ValueName(i) = Worksheets("Sheet1").Cells(i, 1).Value
    ValueValue(i) = Worksheets("Sheet1").Cells(i, 2).Value
    If ValueName(i) Like "*cpu*" Then ValueValue(i) = ValueValue(i) / 100
    If ValueName(i) Like "*mem*" Then ValueValue(i) = ValueValue(i) / 1073741824
    iTemp = Worksheets("Sheet1").Cells(i, 3).Value
    iHour = Int((iTemp Mod 86400) / 3600)
    iMinute = Int((iTemp Mod 3600) / 60)
    iSecond = Int(iTemp Mod 60)
    sTemp = Str(iHour) & ":" & Str(iMinute) & ":" & Str(iSecond)
    ValueDate(i) = sTemp

    Next i


    For i = 1 To iAreaCount
    bFind = False
    Dim sName As String
    sName = Right(ValueName(i), 30)
    For Each sht In Sheets
    If sName = sht.Name Then bFind = True
    Next sht

    If bFind Then
    Worksheets(sName).Activate
    Range("A1").Select
    Range("A1").CurrentRegion.Select
    iTemp = Selection.Rows.Count + 1
    sTemp2 = Mid(Str(iTemp), 2)

    sTemp = "A" & sTemp2
    Range(sTemp).Select
    ActiveCell.FormulaR1C1 = ValueName(i)

    sTemp = "B" & sTemp2
    Range(sTemp).Select
    ActiveCell.FormulaR1C1 = ValueValue(i)

    sTemp = "C" & sTemp2
    Range(sTemp).Select
    ActiveCell.FormulaR1C1 = ValueDate(i)

    Else
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = sName
    Range("A1").Select
    ActiveCell.FormulaR1C1 = ValueName(i)
    Range("B1").Select
    ActiveCell.FormulaR1C1 = ValueValue(i)
    Range("C1").Select
    ActiveCell.FormulaR1C1 = ValueDate(i)
    End If

    Next i


    Dim rng1, rng2 As Range


    'cpu chart
    Dim ChtCPU As Chart

    Worksheets("CPU").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.HasTitle = True
    ActiveChart.ChartTitle.Text = "CPU占用"


    Dim iChartIndex As Integer
    iChartIndex = 1

    For Each sht In Sheets
    If sht.Name Like "*cpu*" Then
    Worksheets(sht.Name).Activate
    Range("A1").Select
    Range("A1").CurrentRegion.Select
    iTemp = Selection.Rows.Count
    sTemp2 = Mid(Str(iTemp), 2)
    sTemp = Worksheets(sht.Name).Cells(1, 1).Value

    Set rng1 = Sheets(sht.Name).Range("B1", "B" & sTemp2)
    Set rng2 = Sheets(sht.Name).Range("C1", "C" & sTemp2)
    rng1.NumberFormat = "0.0%"
    Worksheets("CPU").Activate
    Set ChtCPU = ActiveSheet.ChartObjects(1).Chart
    ChtCPU.SeriesCollection.NewSeries
    ChtCPU.SeriesCollection(iChartIndex).Values = rng1
    ChtCPU.SeriesCollection(iChartIndex).XValues = rng2
    ChtCPU.SeriesCollection(iChartIndex).Name = sTemp

    iChartIndex = iChartIndex + 1


    End If

    Next sht


    'memory chart

    Dim ChtMEM As Chart

    Worksheets("MEM").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.HasTitle = True
    ActiveChart.ChartTitle.Text = "内存占用(G)"

    iChartIndex = 1

    For Each sht In Sheets
    If sht.Name Like "*mem*" Then
    Worksheets(sht.Name).Activate
    Range("A1").Select
    Range("A1").CurrentRegion.Select
    iTemp = Selection.Rows.Count
    sTemp2 = Mid(Str(iTemp), 2)
    sTemp = Worksheets(sht.Name).Cells(1, 1).Value
    Set rng1 = Sheets(sht.Name).Range("B1", "B" & sTemp2)
    rng1.NumberFormat = "0.00"
    Set rng2 = Sheets(sht.Name).Range("C1", "C" & sTemp2)

    Worksheets("MEM").Activate
    Set ChtMEM = ActiveSheet.ChartObjects(1).Chart
    ChtMEM.SeriesCollection.NewSeries
    ChtMEM.SeriesCollection(iChartIndex).Values = rng1
    ChtMEM.SeriesCollection(iChartIndex).XValues = rng2
    ChtMEM.SeriesCollection(iChartIndex).Name = sTemp

    iChartIndex = iChartIndex + 1


    End If

    Next sht






    End Sub

  • 相关阅读:
    在Android初次的前期学习中的十二个小例子(附案例下载)
    实验二 汇编命令(伪指令)实验
    实验一 用机器指令和汇编指令编程
    用汇编实现十六进制数转化为八进制数(除法)
    用汇编语言实现从1加到100(1+2+...+100)
    实验一 绘制任意斜率的直线段 | 使用VS2017工具
    Nginx+Keepalived实现Nginx高可用负载均衡
    Linux系统在线扩容(根目录)磁盘空间
    Redis集群部署
    CentOS7安装OpenStack-11.部署Ceph分布式存储架构
  • 原文地址:https://www.cnblogs.com/liuwenhao/p/4503226.html
Copyright © 2020-2023  润新知