Excel VBA您可以将DataObject设置为文件中的文本吗?

时间:2014-03-06 10:42:36

标签: excel vba excel-vba

有没有办法获取文本文件的内容并将其添加到剪贴板?

我正在考虑将DataObject的内容设置为文件中的内容,然后将DataObject添加到剪贴板。

这可以通过Excel VBA完成吗?

这是我用来将数据以正确格式存入txt文件的代码。但是,我也需要它在剪贴板中,所以我可以粘贴它。

With ws2
    Open "C:\Users\peter.carr\Documents\New Action Plan\copytest.txt" For Append As #1
    lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
    lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = lastrow To 2 Step -1
        str1 = ""
        Print #1, ws2.Cells(i, 1).Value & ") " & ws2.Cells(i, 2).Value
        Print #1,
            For Each cell In .Range(.Cells(i, 6), .Cells(i, lastcol))
                g = i - 1
                If cell.Column <> 4 And cell.Column <> 5 And cell.Value <> "" And cell.Value <> "NEW ACTION" Then
                    Print #1, cell.Value
                    Print #1, "(" & cell.Offset(-g, 0).Value & ")"
                    Print #1,
                End If
            Next cell
        Next i
    Close #1
End With

我知道我可以打开文件并复制它。然而,这个想法是,这是一个更大的自动化过程的一部分,因此我真的希望能够在不打开文件的情况下实现这一目标。

1 个答案:

答案 0 :(得分:1)

Sub TextToClipboard()
    Dim sFile As String: sFile = "C:\Test.txt"
    Dim sText As String
    Dim Dataobj As DataObject
    Set Dataobj = New DataObject    
    Open sFile For Input As #1    
    sText = Input(LOF(1), 1)    
    Dataobj.SetText sText    
    Dataobj.PutInClipboard
End Sub