2016-03-04 124 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