(在线等)急!!!怎么用excel表转.txt
怎么用excel 中自带的 VBA 把一个excel的工作目录中的表批量转成.txt文档
要求批量转换
例如有以下的excel表格(前面的1\2\3\4代表行号)
1\ bool1
2\ 12 | aa | 77
3\ 48 | cc | 88
4\ 89 | yy | 99
5\ ............
取出第一列和第三列的内容要转换为(bool1.txt)(.txt的文件名要用表格中的第一行第一列来自动命名)的内容为
12,77
48,88
89,99
.....
假设工作簿中有100个表,需要批量转换,代码要怎么写??
我写C++的对VBA一点都不熟,连控件在哪里拖都不知道,语法更不知道,请求高手一步一步的指教(跪谢)
要像MFC中一样,弄一个按钮出来,按一下按钮弹出一个选择框,可以让用户选择对应的excel工作簿,然后自动转换成.txt文档存在一个文件夹内
[解决办法]
VBA的做法:
1:打开要转换的Excel文件
2:按Alt+F11
3:拷入下面代码:
Sub EduceData() Dim xlsBook As New Workbook Dim xlsSheet As New Worksheet Dim strSavePath As String '文件路径 Dim strSaveFolder As String '保存文件夹 Dim strLineText As String '行内容 Dim i, j As Integer strSaveFolder = "D:\Test1\" If Dir(strSaveFolder, vbDirectory) = "" Then MkDir (strSaveFolder) End If Set xlsBook = Application.Workbooks(1) '打开工作薄 For i = 1 To xlsBook.Sheets.Count '多个Sheet循环 Set xlsSheet = xlsBook.Worksheets(i) strSavePath = strSaveFolder & xlsSheet.Cells(1, 1) & ".txt" If Dir(strSavePath) <> "" Then If MsgBox("文件“" & strSaveFolder & "”已存在,是否替换?", vbYesNo, "提示") = vbYes Then Kill (strSavePath) j = 2 Open strSavePath For Output As #1 '写文件 Do Until Len(xlsSheet.Cells(j, 1)) = 0 strLineText = xlsSheet.Cells(j, 1) & "," & xlsSheet.Cells(j, 3) & vbCr Print #1, strLineText j = j + 1 Loop Close #1 End If End If Next iEnd Sub