2014-03-06 159 views
0

有没有办法获得文本文件的内容并将其添加到剪贴板?Excel VBA可以将DataObject设置为文件中的文本吗?

我正在考虑将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
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 
+0

我是否正确假设我可以在最后添加Dataobj.PutInClipboard将其添加到剪贴板? – Petay87

+0

是的,它应该按预期工作。我要编辑我的答案。 – Kapol

相关问题