今日学习目标

  • 掌握数据导入技术
  • 实现数据清洗和验证
  • 完成数据格式标准化

知识点

1. 多格式数据导入

  • Excel文件:Workbooks.Open方法
  • CSV文件:OpenText方法或QueryTables
  • 文本文件:Line Input语句

2. 数据清洗技术

  • 空值处理:IsEmpty、NZ函数
  • 重复数据:RemoveDuplicates方法
  • 异常值:条件判断和修正

3. 格式标准化

  • 数据类型统一转换
  • 日期格式规范化
  • 编码统一(UTF-8)

今日代码

vba
' 数据导入模块 Sub ImportData() Dim fd As FileDialog Dim selectedFile As String Dim wb As Workbook Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Title = "选择数据文件" .Filters.Clear .Filters.Add "Excel文件", "*.xlsx;*.xls" .Filters.Add "CSV文件", "*.csv" If .Show = -1 Then selectedFile = .SelectedItems(1) Set wb = Workbooks.Open(selectedFile) Call CleanData(wb.ActiveSheet) wb.Close SaveChanges:=True End If End With End Sub ' 数据清洗 Sub CleanData(ws As Worksheet) Dim lastRow As Long Dim i As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row For i = 2 To lastRow ' 处理空值 If IsEmpty(ws.Cells(i, 1)) Then ws.Cells(i, 1).Value = "未知" End If ' 处理重复 If i > 2 Then If ws.Cells(i, 1).Value = ws.Cells(i - 1, 1).Value Then ws.Rows(i).Delete i = i - 1 End If End If Next i End Sub

练习题

  1. 编写导入多个CSV文件的代码
  2. 实现数据验证:检查必填字段
  3. 统一日期格式为YYYY-MM-DD

参考解答

1. 使用数组存储文件列表,循环调用ImportData过程导入所有文件。 2. 使用Select Case或If判断字段值,为空时Highlight并记录错误。 3. 使用DateValue函数转换,CDate或Format格式化日期字符串。


由在线工具箱(www.vba.net)整理制作