2016-03-04 71 views
0

请帮我...这让我疯狂。VBA MACRO无法粘贴

我想从CSV复制一些数据,但无法将其粘贴到我通常手动执行的目标文件。

我现在面临这个问题: -I不能回去到目标文件的纸张 - 即使我可能会粘贴为字符串 -I需要的数据是相同的从CSV

MyFile = Application.GetOpenFilename() 

    ChDir "C:\datafolder\" 

    Application.Workbooks.Open (MyFile) 
    Range("A1").CurrentRegion.Select 
    Selection.copy 
    ActiveWorkbook.Close savechanges:=False 
    Application.ScreenUpdating = True 

    Windows("chickenfeed.xlsm").Activate 
    ActiveWorkbook.Sheets("Raw Export").Range("A1").Select 

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

End sub 
+0

如何添加以下代码,“ActiveWorkbook.Close的SaveChanges:= True“,在程序结束时(作为'End Sub'上方的一行)? –

回答

1

您在粘贴之前关闭了源代码范围。

试试这个,学习流...
(假设它的 “工作表Sheet1 ” 您尝试将数据从复制)

Option Explicit 

Sub PasteData() 
    Dim oSourceWB As Workbook, oTargetWB As Workbook, MyFile As String 

    MyFile = Application.GetOpenFilename() 

    ChDir "C:\datafolder\" 
    On Error Resume Next 
    Set oSourceWB = Workbooks.Open(Filename:=MyFile, ReadOnly:=True) 
    Set oTargetWB = Workbooks("chickenfeed.xlsm") 
    On Error GoTo 0 
    If Not (oSourceWB Is Nothing And oTargetWB Is Nothing) Then 
     oSourceWB.Worksheets("Sheet1").Range("A1").CurrentRegion.Copy oTargetWB.Sheets("Raw Export").Range("A1") 
     oSourceWB.Close SaveChanges:=False 
    End If 
    Set oSourceWB = Nothing 
    Set oTargetWB = Nothing 
End Sub 
+0

Thx PatricK,但是我遇到了复制和粘贴部分的类似问题。 (“A1”) – IneedCoffee

+0

你想从源文件中复制什么? 'UsedRange'? – PatricK

+0

我现在了解这个流程。许多thx帕特里克。 – IneedCoffee