1 数据清洗机器人(含空行处理)
Sub 数据清洗()
' 功能:三合一清洗(删空行/去重/日期标准化)
Columns("A:D").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes
On Error Resume Next
' 删除空行(A列空白即整行删除)
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
' 强制C列转为日期格式
Columns("C").TextToColumns Destination:=Range("C1"), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
MsgBox "已清洗" & [COUNTA(A:A)-1] & "条有效数据!"
End Sub
2 智能报告生成器(带邮件发送)
Sub 生成日报()
' 需引用Microsoft Outlook库
Dim OutlookApp As Object, Mail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)
' 生成PDF
Sheets("总表").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\日报.pdf"
' 自动发送邮件
With Mail
.To = "qa@company.com"
.Subject = Format(Now(), "yyyy-mm-dd") & "质量日报"
.Body = "附件为自动生成报告,数据截止" & [A1]
.Attachments.Add ThisWorkbook.Path & "\日报.pdf"
.Send
End With
MsgBox "报告已发送至QA部门!"
End Sub
3 格式规范突击队
Sub 格式标准化()
' 全表三标统一(字体/边框/列宽)
With ActiveSheet.UsedRange
.Font.Name = "微软雅黑"
.Borders.LineStyle = xlContinuous
.Columns.AutoFit
' 错误单元格标黄
.SpecialCells(xlCellTypeFormulas, xlErrors).Interior.Color = vbYellow
End With
' 智能冻结首行
ActiveWindow.FreezePanes = False
Rows("2:2").Select
ActiveWindow.FreezePanes = True
End Sub
4 邮件提醒小秘书(增强版)
Sub 质量预警()
' 遍历BOM表检查逾期项
Dim lastRow As Long, i As Long
lastRow = Cells(Rows.Count, 5).End(xlUp).Row
For i = 2 To lastRow
If Cells(i, 5).Value < Now() Then
' 逾期项红色背景+批注
Cells(i, 5).Interior.Color = RGB(255, 200, 200)
If Cells(i, 5).Comment Is Nothing Then
Cells(i, 5).AddComment "已逾期" & Format(Now() - Cells(i,5).Value, "0天")
End If
' 汇总提醒
MsgBox Cells(i, 1) & " 物料检验逾期!", vbExclamation
End If
Next i
End Sub
5 数据分析透视王
Sub 智能透视()
' 动态创建透视表+柱状图
Dim pvtCache As PivotCache
Dim pvtTable As PivotTable
Set pvtCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=Sheets("数据源").Range("A1").CurrentRegion)
Set pvtTable = pvtCache.CreatePivotTable( _
TableDestination:=Sheets.Add(After:=Sheets(Sheets.Count)).Range("A3"), _
TableName:="质量分析")
' 配置字段
With pvtTable
.AddDataField .PivotFields("不良数量"), "合计", xlSum
.RowGrand = False
.PivotFields("产线").Orientation = xlRowField
.PivotFields("缺陷类型").Orientation = xlColumnField
End With
' 生成可视化图表
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Top = 100
End Sub
代码使用说明:
- 按Alt+F11打开VBA编辑器
- 右键插入新模块粘贴代码
- 按F5运行或绑定到按钮
感谢读者私信,如有其它功能需要的留言提出~