EXCEL宏编程纪念
不久前被叫去编写宏,这EXCEL宏真是麻烦! 可能以后不会再遇到有编写宏的经历了,故而贴出来以做个纪念:
Sub direct_Price()
'
'query_dir_volume
'宏由 颜清国编写,时间: 2007-4-9
'
''定义变量
Dim cRows As Integer '总行数
Dim cColumns As Integer '总列数
Dim HEADERCOLORINDEX As Integer '表头的背景色
Dim cTemp As Integer '临时计数
Dim sTempString As String '临时字符串变量
Dim i As Integer '临时计数
Dim j As Integer '临时计数
Dim rowIndex As Integer '临时指示处理到哪里
Dim colIndex As Integer '临时指示处理到哪里
Dim tempRndColor As Integer '临时生成的颜色
Dim TABLENAME As String '待处理的表名
Dim colorIndex As String '颜色索引名字
''''''''''''''''''''''''''''''''''''''''''''''
'表头的背景色
HEADERCOLORINDEX = 15
colorIndex = 36 '颜色从33开始是比较浅的颜色
TABLENAME = "direct_Price"
'关闭所有弹出的警告消息
Application.DisplayAlerts = False
'设置需要处理的单元表
Sheets(TABLENAME).Select
'取单元表的总列数与总行数
cRows = Sheets(TABLENAME).UsedRange.Rows.Count
cColumns = Sheets(TABLENAME).UsedRange.Columns.Count
''''''''''''''''''''''''''''''''''''''''''''''
'选择所有的单元格
Range(Cells(1, 1), Cells(cRows, cColumns)).Select
'设置该表中所有单元行高为11.25
Selection.RowHeight = 11.25
'设置该表中所有单元行高为11.25
Selection.RowHeight = 11.25
'设置所有的边框
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
'并且拆分所有的单元格
With Selection
.MergeCells = False '拆分单格
End With
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
'删除第一列,注意这里必须先拆分单格,再删除第一列,否则一次就会把合并单元格所在列全部删除
Range(Cells(1, 1), Cells(1, 1)).Select
Selection.EntireColumn.Delete
'Selection.EntireColumn.Delete
'向表头添加一行
Rows("1:1").Select
Selection.Insert
Columns("A:A").Select
Selection.ColumnWidth = 9.29
Columns("B:B").Select
Selection.ColumnWidth = 6.71
Columns("C:C").Select
Selection.ColumnWidth = 15.29
Columns("D:D").Select
Selection.ColumnWidth = 29.86
Columns("E:E").Select
Selection.ColumnWidth = 12.29
Columns("F:F").Select
Selection.ColumnWidth = 12.29
'''''''''''''''''''''''''''''''''''设定单元格A1:A2''''''''''''''''''''
'合并A1:A2单元格
Range("A1:A2").Select
'将数据写回
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
'往该单元格中写入Usage_Var
ActiveCell.FormulaR1C1 = "Price"
'设置该单元格字体格式
With ActiveCell.Characters(Start:=1, Length:=5).Font
.Name = "Arial"
.FontStyle = "加粗 倾斜"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 2
End With
'单元格设定边框
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = 56
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection.Interior
.colorIndex = 5
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
'''''''''''''''''''''''''''''设定头两行的内部样式'''''''''''''''''''''''
Range("B1:B2").Select
Selection.Merge
Range("C1:C2").Select
Selection.Merge
Range("D1:D2").Select
Selection.Merge
Range("B1:D2").Select
'设置头两行行高为11.25
Selection.RowHeight = 14.25
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
With Selection.Interior
.colorIndex = HEADERCOLORINDEX
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("B1:B2").Select
ActiveCell.FormulaR1C1 = "Type"
With ActiveCell.Characters(Start:=1, Length:=4).Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 5
End With
Range("E1:F1").Select
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 5
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection.Interior
.colorIndex = HEADERCOLORINDEX
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
ActiveCell.FormulaR1C1 = "Price"
Range("E2:F2").Select
'设置头两行行高为11.25
Selection.RowHeight = 14.25
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.colorIndex = HEADERCOLORINDEX
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
'加第一二行边框
Range("A1:F2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
'去掉第三行的:号
'sTempString = Right(Cells(3, 1), Len(Cells(3, 1)) - 3)
'ActiveCell.FormulaR1C1 = sTempString
i = 2
j = 1
'外层循环判断是否都合并完成,这里插入了一行,加1
While i <= cRows
' i = i + 1
Range(Cells(i + 1, j), Cells(i + 1, j)).Select
'去掉分类行中的:号
If (Len(Cells(i + 1, j)) >= 3) Then
''''''''''''''如果是分格的界限''''''''''''''''''''''''''''''''''''
If (Left(Cells(i + 1, j), 3) = " : ") Then
Range(Cells(i + 1, j), Cells(i + 1, cColumns)).Select
'对第三行进行设定
'设置头两行行高为11.25
Selection.RowHeight = 18
With Selection.Interior
.colorIndex = 2
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
'合并前两格
'先将其合并
With Selection
.HorizontalAlignment = xlLeft '靠左对齐
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'合并
Selection.Merge
'对其设定字体风格
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗 倾斜"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 3
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
sTempString = Right(Cells(i + 1, j), Len(Cells(i + 1, j)) - 3)
ActiveCell.FormulaR1C1 = sTempString
i = i + 1
End If
End If
i = i + 1
'加1后判断是否到了表尾,没有继续合并处理
'If (i <= cRows + 1) Then
rowIndex = i
'取出Cells(i, j)的内容
sTempString = Cells(i, j)
'循环判断下一个单元格是否和上一个单元格相等,不是则表示到此该合并
While sTempString = Cells(i + 1, j) And i <= cRows
i = i + 1
Wend
''''''''''''''''''''''''''''''''''''设置第一列''''''''''''''''''''''''''''''''''''''''
'跳出循环表示已经到此该将rowIndex 和 i行合并
Range(Cells(rowIndex, j), Cells(i, j)).Select
Selection.Merge
'将原来内容填充进来
ActiveCell.FormulaR1C1 = sTempString
'设合并后的单元格的边框
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.Font.FontStyle = "加粗"
''''''''''''''''''''''''''''''''''''设置第一列结束''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''设置第二列'''''''''''''''''''''''''''''''''''''''''''''
Range(Cells(rowIndex, j + 1), Cells(i, j + 1)).Select
'设置字体
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 5
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = 56
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = 56
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = 56
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = 56
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'''''''''''''''''''''''''''''设置第二列结束'''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''修改原来单元格的数据格式''''''''''''''''''''''''''''''''
''''''''''''''''''''''''首先向任一无用的单元格写入数据
Range(Cells(cRows + 2, cColumns), Cells(cRows + 2, cColumns)).Select
ActiveCell.FormulaR1C1 = "1"
'将其格式拷贝
Selection.Copy
'复制格式
Range(Cells(rowIndex, j + 4), Cells(i, cColumns)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Selection.NumberFormatLocal = "_*#,##0.00000"
'清除原来内容
Range(Cells(cRows + 2, cColumns), Cells(cRows + 2, cColumns)).Select
Selection.ClearContents
''''''''''''''''''''''''设定数据格式完成''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''统一设置该区域的颜色''''''''''''''''''''''''''''''''''''''''''''''
'设置内部填充
Range(Cells(rowIndex, j), Cells(i, cColumns)).Select
colorIndex = colorIndex + 1
If colorIndex > 39 Then
colorIndex = 33
End If
With Selection.Interior
.colorIndex = colorIndex '颜色
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
''''''''''''''''''''''''''''''''''统一设置该区域的颜色结束''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''设置剩余的列'''''''''''''''''''''''''''''''''''''''''''''
Range(Cells(rowIndex, j + 2), Cells(i, cColumns)).Select
'设置字体
With Selection.Font
.Name = "Arial"
.FontStyle = "常规"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
'设置第6列
Range(Cells(rowIndex, j + 4), Cells(i, j + 5)).Select
'设置字体
With Selection.Font
.Name = "Arial"
.FontStyle = "常规"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = 3
End With
'''''''''''''''''''''''''''''设置全部的边框'''''''''''''''''''''''''''''''''''''''''''''
Range(Cells(rowIndex, j), Cells(i, cColumns)).Select
'设置边框
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
' .LineStyle = xlContinuous
.Weight = xlThin
' .colorIndex = xlAutomatic
End With
Wend
Range(Cells(rowIndex - 1, 1), Cells(rowIndex - 1, cColumns)).Select
Selection.MergeCells = False
Range(Cells(rowIndex - 1, cColumns - 1), Cells(rowIndex - 1, cColumns - 1)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
With Selection.Interior
.colorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
ActiveCell.FormulaR1C1 = "Average"
With ActiveCell.Characters(Start:=1, Length:=7).Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
Range(Cells(rowIndex - 1, cColumns), Cells(rowIndex - 1, cColumns)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
With Selection.Interior
.colorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
ActiveCell.FormulaR1C1 = "Average"
With ActiveCell.Characters(Start:=1, Length:=7).Font
.Name = "Arial"
.FontStyle = "加粗"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.colorIndex = xlAutomatic
End With
Range(Cells(rowIndex - 1, cColumns - 1), Cells(rowIndex - 1, cColumns)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.colorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
' .LineStyle = xlContinuous
.Weight = xlThin
' .colorIndex = xlAutomatic
End With
End Sub
EXCEL宏编程纪念相关推荐
- excel 宏编程_在 Excel 中使用 Python 开发宏脚本
点击上方蓝字,每天一起学 Python,文末领送书福利 文 | varlemon 编辑 | EarlGrey 推荐 | 编程派公众号(ID:codingpy) 之前发文介绍过一个叫GridStudio ...
- 【016】Excel宏编程的交互解析(Cells)_002_#VBA
Cells 1 交互元件 Cells 解析 1.1 元素解读 1.2 操作后缀 2 对列进行编号 3 说明 1 交互元件 Cells 解析 1.1 元素解读 Cells(RowIndex,Column ...
- WPS JS宏编程是什么
WPS JS宏编程是一种基于JavaScript语言的自动化办公技术,可以通过编写脚本来自动化执行一些重复性的任务,例如格式化文本.生成报表.处理数据等.本教程将介绍WPS JS宏编程的基本概念.语法 ...
- js宏编程--wps开放平台介绍
在上篇<初识Excel的JS环境WPS宏编程>中提到,JS宏编程有2个比较好的参考资料,一个是官方的WPS开发平台介绍,另一个则是ES6教程,本文就WPS开发平台关于JS宏编程的重点做一个 ...
- makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
微信限制:不能放置链接,代码样式比较奇怪,发布后不能更新... 推荐 阅读原文: 写在前面 之前写过几篇关于 C/C++ 宏 (macro) 和 C++ 元编程 (metaprogramming) 的 ...
- 用EXCEL宏编写坐标转换
用EXCEL宏编写坐标转换* 网上查了很多坐标转换代码和各种参数,很多不一致或不完整,自编VBA坐标转换,进行代码验证,和专业的坐标转换软件比较,如常见的笑脸坐标转换软件COORD GM和中海达的Co ...
- java实现鼠标宏编程_我應該如何編程高級java遊戲中的鼠標/鍵輸入?
我是一名自學成才的程序員,所以我不知道正確的做事方式.我製作了諸如小行星和蛇之類的簡單遊戲,但在這些遊戲中,您可以輕鬆修改鍵事件功能中的變量.這裏是我在我的簡單的小行星遊戲做到了:我應該如何編程高級j ...
- 麦克风静音 宏编程_你能听到我吗? 取消麦克风静音
麦克风静音 宏编程 I've been working remotely now, from home, for over half a decade. I work in my home offic ...
- office word中利用宏编程批量调节图片的亮度和对比度
Sub '调节亮度和对比度()' 调节亮度和对比度 宏For i = 1 To ActiveDocument.InlineShapes.Count'0~1对应-100%~100%范围ActiveDoc ...
最新文章
- 马斯克要往火星轨道送跑车,在深空待10亿年,静候外星人
- 介绍一个很好用的Rsa加解密的.Net库 Kalix.ApiCrypto
- Android之自定义标题
- python opengl加速_OpenGL with python 渲染加速
- mysql统计数据的代码_MySQL按时间统计数据的方法介绍(代码示例)
- 深度学习与自然语言处理
- MySQL实现远程备份的原理_mysql实现自动远程备份一办法
- 【BZOJ1058】[ZJOI2007]报表统计 STL
- Waymo捷豹合推电动无人车I-PACE,将加入无人出租车队
- 前端面试题2016--CSS
- 自定义数据字典翻译注解
- U盘修复工具哪个好?7款U盘低格工具详解
- 医疗行业源代码保密解决方案
- js:苹果手机页面返回,数据不刷新问题
- linux上windows模拟器下载,Wine(Windows模拟器)下载_Wine(Windows模拟器)官方下载-太平洋下载中心...
- volatile有序性的真正作用
- Python将PDF转成图片—PyMuPDF和pdf2image
- 谷歌刷新纪录:将圆周率精确到了小数点后31万亿位,光存储就占了几个大硬盘!
- windows不安装虚拟机如何使用Linux系统作为开发工具?
- 中文自然语言预处理总结