Excel,VBA求教表格和TXT文本互转。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel,VBA求教表格和TXT文本互转。相关的知识,希望对你有一定的参考价值。
Excel,VBA求教表格和TXT文本互转。想学习VBA对txt的读取和写入。先简单点的。
1,对当前子表使用区域进行复制粘贴到txt中(有分列空格)。
2,对特定txt文档读取,粘贴到当前子表指定单元格(开始)。
3,实现txt,隐藏打开、保存及关闭。
先谢谢知道。(´-ω-`)
Sub 复制Excel表格到Text文件()
On Error Resume Next
Dim srcRng As Range, destRng As Range, textWorkBook As Workbook, wb As Workbook
Application.DisplayAlerts = False
'打开Text文件前,保存当前活动的工作薄对象
Set wb = ActiveWorkbook
Set srcRng = wb.ActiveSheet.UsedRange
If Dir(Filename) = "" Then
'如果Text文件不存在,新建一个工作薄,粘贴区域从A1开始
Set textWorkBook = Workbooks.Add
Set destRng = textWorkBook.Sheets(1).Range("A1")
Else
'通过Workbooks的OpenText方法,打开Text文件
Workbooks.OpenText Filename:=Filename
If Err Then
MsgBox "打开文件 " & Filename & "出错。错误信息如下:" & vbCrLf & vbcrlr & Err.Description
Exit Sub
End If
Set textWorkBook = ActiveWorkbook
'查找粘贴开始位置,即现有数据的最后一行的下一行
'为了防止是空表时,end操作会定位到最后一行
Set destRng = textWorkBook.Sheets(1).Range("A1").End(xlDown).Offset(1)
If Err Then
Set destRng = textWorkBook.Sheets(1).Range("A1")
End If
End If
textWorkBook.Windows(1).Visible = False '隐藏Text文件的窗口,既可以达到隐藏打开,保存和关闭。
srcRng.Copy destRng '表的使用区域复制到Text文件的工作薄,指定位置
'使用Workbook的SaveAs方法,通过指定FileFormat参数为xlText,将工作薄另存为Text文件。
textWorkBook.SaveAs Filename:=Filename, FileFormat:=xlText
textWorkBook.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
Sub 复制Text文件到Excel表格()
On Error Resume Next
Dim destRng As Range, textWorkBook As Workbook, wb As Workbook
Application.DisplayAlerts = False
'打开Text文件前,保存当前活动的工作薄对象
Set wb = ActiveWorkbook
'查找粘贴开始位置,即现有数据的最后一行的下一行
'为了防止是空表时,end操作会定位到最后一行
Set destRng = wb.ActiveSheet.Range("A1").End(xlDown).Offset(1)
If Err Then
Set destRng = wb.ActiveSheet.Range("A1")
Err.Clear
End If
If Dir(Filename) = "" Then
'Text文件不存在
MsgBox "文件 " & Filename & "不存在!"
Exit Sub
Else
'通过Workbooks的OpenText方法,打开Text文件
Workbooks.OpenText Filename:=Filename
If Err Then
MsgBox "打开文件 " & Filename & "出错。错误信息如下:" & vbCrLf & vbcrlr & Err.Description
Exit Sub
End If
Set textWorkBook = ActiveWorkbook
End If
textWorkBook.Windows(1).Visible = False '隐藏Text文件的窗口,既可以达到隐藏打开,保存和关闭。
textWorkBook.Sheets(1).UsedRange.Copy destRng '表的使用区域复制到Text文件的工作薄,指定位置
'关闭Text文件。
textWorkBook.Close SaveChanges:=False
Application.DisplayAlerts = True
End Sub
使用workbooks的OpenText方法来打开Text文件,然后可以向操作Excel工作表来操作Text文件。 参考技术A 隐藏打开
是怎么打开?TXT没这个说法吧
如何用VBA将excel表导出成文本类型的文件?
其实就是想用VBA把一个sheets里的内容 导出到一个叫 dataout.json的文件里(这个文件实际上就是一个txt文件改了下扩展名)
我用以下的语句
ActiveWorkbook.SaveAs Filename:="D:\doc\dataout.json", FileFormat:=xlText, CreateBackup:=False
结果导出的文件中 原先每个cell的位置上都有一对"" 令我非常郁闷
请问有什么别的命令么..
ActiveWorkbook.SaveAs Filename:="D:\doc\dataout.json", FileFormat:=xlCSV, CreateBackup:=False追问
xlcsv的话又全都变成 , 了 我需要的是原先是什么样 现在就什么样 谢谢了
追答你如果不用“,”号,那你怎么区分单元格?你数据只有一列吗?
追问原先的文件如上图
导出文本文档后希望如下
所以希望没有逗号
"ornament":
"ornament1":
"name":"ornament1" ,
"ID":1 ,
"build_exp":10 ,
"build_gold":5 ,
"level_require":"lv1" ,
"horror":20
,
那你还不如用代码从单元格直接读出数据,然后写入txt文件。
追问可具体怎么做呢...
追答Sub daochu()
Dim iStartCol As Integer
Dim iStartRow As Integer
Dim iMaxCol As Integer
Dim iMaxRow As Integer
Dim str1 As String
iStartRow = ActiveSheet.UsedRange.Row
iMaxRow = ActiveSheet.UsedRange.Rows.Count + iStartRow - 1
iStartCol = ActiveSheet.UsedRange.Column
iMaxCol = ActiveSheet.UsedRange.Columns.Count + iStartCol - 1
Open "D:\dataout.json" For Output As #1
For i = iStartRow To iMaxRow
For j = iStartCol To iMaxCol
str1 = str1 & Cells(i, j)
Next j
Print #1, str1
Next i
Close #1
End Sub
以上是关于Excel,VBA求教表格和TXT文本互转。的主要内容,如果未能解决你的问题,请参考以下文章
在 Excel 中使用 VBA,如何在 Outlook 中粘贴表格然后将表格转换为文本?
在excel中,如何用VBA将每列数据的输出为一个独立的文本文件txt