vba 把excel中的值复制粘贴到txt中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba 把excel中的值复制粘贴到txt中相关的知识,希望对你有一定的参考价值。

Open "c:\1.txt" For Append As #1
Selection.Paste
在Selection.Paste上报 对象不支持,该如何解决

Excel每行数据导出成txt.文件的VBA代码:
Sub DaoChu()
Dim I As Integer, J As Long, RW As Long
For I = 1 To ActiveSheet.UsedRange.Columns.Count
Open ThisWorkbook.Path & "\" & Cells(1, I) & ".txt" For Output As 1
For J = 2 To Cells(65536, I).End(3).Row
Print #1, Cells(J, I).Value
Next J
Close 1
Next I
MsgBox "数据导出完毕!", vbOKOnly, "导出成功"
End Sub
参考技术A vba写入txt见一下代码

如果想用copy的话,必须用到剪贴板
Dim MyData As DataObject
MyData.GetFromClipboard()
Open "c:\1.txt" For Append As #1
Print #1, MyData.GetText()

或者
dim str as string
str=[a1]
Open "c:\1.txt" For Append As #1
Print #1, str追问

抱歉 不是很懂,
Range("Q12:Q48").Select
Selection.Copy
Open "c:\1.txt" For Append As #1
该怎么把这段数据粘贴至1.txt中。。。

追答

Dim MyData As DataObject
Range("Q12:Q48").copy
MyData.GetFromClipboard()
Open "c:\1.txt" For Append As #1
Print #1, MyData.GetText()

追问

在MyData.GetFromClipboard()上面报这个错

追答Sub test()
    Dim MyData As DataObject
    Dim MyStr As String
    Set MyData = New DataObject
    Range("Q12:Q48").Copy
    MyData.GetFromClipboard
    MyStr = MyData.GetText
    Open "c:\\1.txt" For Append As #1
    Print #1, MyStr
    Close #1
End Sub

追问

不好意思,这次在Dim MyData As DataObject报这个错

追答

工具》引用》Miscrosoft Forms 2.0 Object Library打钩,确定。

追问

表示没有,是不是因为我是03的office的缘故

追答

工具》引用》浏览
xp:C:\Windows\System32\FM20.dll
win7:C:\Windows\SysWOW64\FM20.dll

本回答被提问者采纳

Excel,VBA求教表格和TXT文本互转。

Excel,VBA求教表格和TXT文本互转。想学习VBA对txt的读取和写入。先简单点的。
1,对当前子表使用区域进行复制粘贴到txt中(有分列空格)。
2,对特定txt文档读取,粘贴到当前子表指定单元格(开始)。
3,实现txt,隐藏打开、保存及关闭。
先谢谢知道。(´-ω-`)

Const Filename = "d:\\1.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中的值复制粘贴到txt中的主要内容,如果未能解决你的问题,请参考以下文章

用VBA编写复制功能,能不能只粘贴值,不粘贴格式

Excel VBA - 循环遍历多个文件夹中的文件,复制范围,粘贴到此工作簿中

使用 Excel VBA 实现复制 粘贴 和保存,并自动运行VBA

VBA Excel匹配复制粘贴如果其他

Excel VBA:复制/粘贴范围

VBA自动过滤复制值,去重并粘贴到其他工作表中