VBA自动生成图表
'//此VBA为Excel宏语言'

1
2
3 'Attribute VB_Name = "模块1"
4 Sub 制图表_NBR_G()
5 'Attribute 制图表_NBR_G.VB_ProcData.VB_Invoke_Func = " \n14"
6 '获取当前文件目录
7 Dim CurPath
8 CurPath = ActiveWorkbook.Path
9 ' 制图表_NBR_G 宏
10
11 '忽略相关弹窗信息
12 Application.DisplayAlerts = False
13 ' 获取今天的时间
14 Dim DateOfToday As String
15 DateOfToday = Format$(Date, "yyyymmdd")
16 'DateOfToday = 20161105
17 '打开文本取数据
18 Const ForReading = 1, ForWriting = 2, ForAppending = 8
19 '格式:路由器IP 店铺编号 型号
20 Dim fso, file1, line, params, ip, number, mode
21 Set fso = CreateObject("Scripting.FileSystemObject")
22 Set file1 = fso.OpenTextFile(CurPath & "\NBR_G.txt", ForReading, False)
23 '循环写每一列数据
24 Do While file1.AtEndOfStream <> True
25 '读取一行数据
26 line = file1.ReadLine
27 '格式:路由器IP 店铺编号 型号
28 params = Split(line)
29 '获取IP地址
30 ip = params(0)
31 '店铺编号
32 number = params(1)
33 '获取设备型号
34 mode = params(2)
35
36 '判断同一型号设备添加数据结束,制图标
37 If number = "END" Then
38 '删除掉多余字符串
39 Cells.Replace What:="Number of active flows:", Replacement:="", LookAt:= _
40 xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
41 ReplaceFormat:=False
42
43 If mode = "1300G" Then
44 '调整数据格式
45 Range("B2:AI49").Select
46 Selection.NumberFormatLocal = "0"
47 '选择区域生成图表
48 Range("A1:AI49").Select
49 ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
50 ActiveChart.SetSourceData Source:=Range("data!$A$1:$AI$49")
51 End If
52
53 If mode = "1000G" Then
54 '调整数据格式
55 Range("B2:I49").Select
56 Selection.NumberFormatLocal = "0"
57 '选择区域生成图表
58 Range("A1:I49").Select
59 ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
60 ActiveChart.SetSourceData Source:=Range("data!$A$1:$I$49")
61 End If
62
63 If mode = "1500G" Then
64 '调整数据格式
65 Range("B2:B49").Select
66 Selection.NumberFormatLocal = "0"
67 '选择区域生成图表
68 Range("A1:B49").Select
69 ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
70 ActiveChart.SetSourceData Source:=Range("data!$A$1:$B$49")
71 End If
72
73 If mode = "2000G" Then
74 '调整数据格式
75 Range("B2:C49").Select
76 Selection.NumberFormatLocal = "0"
77 '选择区域生成图表
78 Range("A1:C49").Select
79 ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
80 ActiveChart.SetSourceData Source:=Range("data!$A$1:$C$49")
81 End If
82
83 ActiveChart.Axes(xlCategory).Select
84 '调整图表横坐标度量值
85 ActiveChart.Axes(xlCategory).MaximumScale = 1
86 ActiveChart.Axes(xlCategory).MajorUnit = 0.05
87 '调整图表纵坐标起始值
88 ActiveChart.Axes(xlValue).MinimumScale = 0
89 ActiveChart.ClearToMatchStyle
90 ActiveChart.ChartStyle = 245
91 '修改图表title
92 ActiveChart.ChartTitle.Select
93 Selection.Format.TextFrame2.TextRange.Characters.Text = mode & "-" & DateOfToday & "-Report"
94 ActiveChart.ChartArea.Select
95 '移动到新的chart里
96 ActiveChart.Location Where:=xlLocationAsNewSheet
97 End If
98
99
100 If ip <> "IP" Then
101 '激活data sheet
102 Worksheets("data").Activate
103 '从文本读取数据写到B2
104
105 With ActiveSheet.QueryTables.Add(Connection:= _
106 "TEXT;" & CurPath & "\temp\R_" & ip & "_" & DateOfToday & ".txt", Destination:= _
107 Range("$B$2"))
108 .Name = "R_" & ip & "_" & DateOfToday & ""
109 .FieldNames = True
110 .RowNumbers = False
111 .FillAdjacentFormulas = False
112 .PreserveFormatting = True
113 .RefreshOnFileOpen = False
114 .RefreshStyle = xlInsertDeleteCells
115 .SavePassword = False
116 .SaveData = True
117 .AdjustColumnWidth = False
118 .RefreshPeriod = 0
119 .TextFilePromptOnRefresh = False
120 .TextFilePlatform = 936
121 .TextFileStartRow = 1
122 .TextFileParseType = xlDelimited
123 .TextFileTextQualifier = xlTextQualifierDoubleQuote
124 .TextFileConsecutiveDelimiter = False
125 .TextFileTabDelimiter = True
126 .TextFileSemicolonDelimiter = False
127 .TextFileCommaDelimiter = False
128 .TextFileSpaceDelimiter = False
129 .TextFileColumnDataTypes = Array(1, 1, 1, 1)
130 .TextFileTrailingMinusNumbers = True
131 .Refresh BackgroundQuery:=False
132 End With
133 '将店铺编号写到B1
134 Range("B1").Select
135 ActiveCell.FormulaR1C1 = number
136 End If
137
138 Loop
139 '将生成图标另存为本目录下的excel
140 ChDir CurPath
141 ActiveWorkbook.SaveAs Filename:=CurPath & "\NBR_G_Report_" & DateOfToday & ".xlsx", _
142 FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
143
144 End Sub
145
146 相关推荐
玫瑰小妖 2020-04-22
RuoShangM 2020-03-27
85271041 2020-03-08
点滴技术生活 2019-11-06
wodeccu 2011-07-27
Sophisticated 2018-11-12
felicityguo 2017-12-19
yoneyou 2017-12-24
chenmingwei 2009-11-02
淼寒儿 2011-08-17
沉默的羔羊 2019-04-02
祖先 2018-05-15
无人机中的城堡 2018-05-05
无人机中的城堡 2018-05-05
Finance学习笔记 2018-03-21
Finance学习笔记 2017-12-20
Finance学习笔记 2017-11-29
BAT 批处理程序 2017-05-20
编程爱好者联盟 2016-12-15