为措辞严厉的问题道歉。
我在excel中有下表:
真实文件宽800个,深2800行,超过200万个组合。更多的是在数据库中很难管理。
我需要将数据转换为数据库友好格式,例如:
说实话,我不知道从哪里开始。在excel或现有脚本中是否有反向支点来执行此操作?
所以逻辑,其中row遇到excel中的列,获取值并将所有三个写入数据库格式。
任何指针?
一如既往地谢谢
答案 0 :(得分:1)
您可以使用此代码创建一个csv文件,然后可以将其导入到您选择的数据库中。我在一个类似于你描述的数据集的数据集上进行了测试,并在大约30秒内完成。
Sub tgr()
Dim arrData As Variant
Dim rIndex As Long
Dim cIndex As Long
Dim i As Long
Dim strLine As String
Dim strTemp As String
arrData = Range("A1", Cells(Cells(Rows.Count, "A").End(xlUp).Row, Cells(1, Columns.Count).End(xlToLeft).Column)).Value
Close #1
Open "C:\Temp\ExcelData.csv" For Output As #1
Print #1, "Product,Customer,Price"
For rIndex = 2 To UBound(arrData, 1)
For cIndex = 2 To UBound(arrData, 2)
strLine = vbNullString
For i = 1 To 3
strTemp = Choose(i, arrData(rIndex, 1), arrData(1, cIndex), arrData(rIndex, cIndex))
If InStr(1, strTemp, ",", vbTextCompare) > 0 Then strTemp = """" & strTemp & """"
strLine = strLine & "," & strTemp
Next i
Print #1, Mid(strLine, 2)
Next cIndex
Next rIndex
Close #1
Erase arrData
End Sub
答案 1 :(得分:-2)
您可以将转置功能用于此目的。