Excel二维表格如何转换为日志格式的单条记录
EXCEL横轴=时间,数轴=设备型号如何转换为类似Access格式:设备,数量,时间单条记录?
为什么要转换?因为Oracle用Dataload导入时,只能时一条条Log格式的记录!
首先我们看一张截图:
最终,我们希望可以得到下文的表格,Dataload只有这样的格式才可以导入。
可能我们通过复制+粘贴也可以实现,但是显然很耗时间。我们需要一个VBA让它自动处理。
步骤:
1,在Personal.xlsb中新建一个模块,FC_Log
2,输入以下代码:
Sub FC_time()
Dim x, y As Integer 'Row,Column
Dim i, j, c As Integer
x = ActiveSheet.UsedRange.Rows.Count
y = ActiveSheet.UsedRange.Columns.Count
'Debug.Print x, y
'create a new sheet,define the titles
Sheets.Add after:=Sheets(1)
Sheets(2).Name = "FC_Log"
Sheets("FC_Log").Cells(1, 1) = "Item"
Sheets("FC_Log").Cells(1, 2) = "Date"
Sheets("FC_Log").Cells(1, 3) = "Qty"
c = 2
'two layers loop, fill in the suitable data to new sheet
For i = 2 To x
For j = 2 To y
If Sheets("FC").Cells(i, j) <> "" And Sheets("FC").Cells(i, j) <> 0 Then
Sheets("FC_Log").Cells(c, 1) = Sheets("FC").Cells(i, 1)
Sheets("FC_Log").Cells(c, 2) = Sheets("FC").Cells(1, j)
Sheets("FC_Log").Cells(c, 3) = Sheets("FC").Cells(i, j)
c = c + 1
End If
Next j
Next i
End Sub
3,保存personal.xlsb,下次使用时第一列为Item,第二列开始为每月的数量(固定格式)
4,F5查看结果,还是挺快了,375条类似Log的记录,几秒就完成了,秒杀Excel的复制粘贴操作。
Nice.....