[VBA求助]Excel数据转换内容格式到TXT文档
Excel的样子:
①有多余的一行列名
TXT的样子:
①每条记录前都有“INSERT into TABLE”
②每条记录用“;”隔开
③列名和数据用等号连在一起
④最尾行为空行
[解决办法]
这个简单的问题,excel函数就可以搞定,还用VB ?
="Insert into Table " & $A$1 & "=" & A3 & " " & $B$1 &"=" & B3 & " " & $C$1 &"=" & C3 & " " & $D$1 &"=" & D3
[解决办法]
个人意见:
1、Excel的格式是表格,也就是行列结构,那么可以定义一个结构类型,把Excel的列作为这个结构类型的元素。那么Excel的每行就是这个结构类型变量的一个元素。再通过Open、Put等语句将该结构变量写入Txt文件中即可。
[解决办法]
楼主参考一下这个代码:
Option ExplicitPrivate Sub Main() ' 应用示例 Call ExportTxt(Excel.ActiveSheet, "X:\Temp\Test.txt")End Sub' *** 导出数据 ***Public Sub ExportTxt(objSheet As Worksheet, strFileName As String) Const RECHEAD As String = "INSERT into TABLE" Const DATACOLS As Long = 4 Dim arrColName$(), strTemp$, i&, j&, k& ' 从第1行提取列名 ReDim arrColName(DATACOLS) For i = 1 To DATACOLS arrColName(i) = objSheet.Cells(1, i).Text & "=" Next ' 创建文件 k = FreeFile() Open strFileName For Output As #k ' 从第3行开始导出数据 i = 3 Do strTemp = objSheet.Cells(i, 1).Text ' 下面这句你自己决定终止条件(正常情况下应该是空单元格结束) If (strTemp = "") Then Exit Do Print #k, RECHEAD Print #k, arrColName(1) & strTemp For j = 2 To DATACOLS Print #k, arrColName(j) & objSheet.Cells(i, j).Text Next Print #k, ";" i = i + 1 ' 下一行 Loop Close #kEnd Sub