2015-06-08 107 views
0

我修改了一段打開一個.csv文件的代碼,複製一個選定的範圍並將其粘貼到Excel工作表中的選定單元格中。從csv文件複製並粘貼到excel文件

我無法選擇.csv文件中的下一個範圍來粘貼到excel文件中。它只適用於第一個範圍(E2:E25)。

我希望它從.csv文件複製/粘貼中選擇下一個範圍(B2:B25),但它只能從Excel文件中選擇。我如何解決這個問題?謝謝。

Option Explicit        

Sub copy2() 
Dim FilesToOpen 
Dim wkbAll As Workbook 
Dim wkbTemp As Workbook 
Dim newSheet As Worksheet 
FilesToOpen = Application.GetOpenFilename(Title:="Text Files to Open") 
    Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen, Format:=4) 
    wkbTemp.Sheets(1).Cells.copy 
    Range("E2:E25").Select 
    Selection.copy 
    Windows("Petty Cash Form (test).xls").Activate 
    Range("H10").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 


    Range("B2:B25").Select 
    Selection.copy 
    Windows("Petty Cash Form (test).xls").Activate 
    Range("B10").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

    Application.CutCopyMode = False 
    wkbTemp.Close 

End Sub 
+0

你編寫這個你自己還是你用複製的代碼融合這一點,宏錄像機。我在問,因爲如果你自己做了這個,我會要求你定義表格,以便更容易解決你的問題。 – dom176

+0

我混合了宏錄製器的複製/粘貼位。 – DigitalSea

回答

1

在VBA宏添加一行:wkbTemp.Sheets(1).Activate(見「激活源工作表):

Option Explicit 

Sub copy2() 
Dim FilesToOpen 
Dim wkbAll As Workbook 
Dim wkbTemp As Workbook 
Dim newSheet As Worksheet 
FilesToOpen = Application.GetOpenFilename(Title:="Text Files to Open") 
    Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen, Format:=4) 
    wkbTemp.Sheets(1).Cells.copy 
    Range("E2:E25").Select 
    Selection.copy 
    Windows("Petty Cash Form (test).xls").Activate 
    Range("H10").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

    'Activate Source Worksheet 
    wkbTemp.Sheets(1).Activate  

    Range("B2:B25").Select 
    Selection.copy 
    Windows("Petty Cash Form (test).xls").Activate 
    Range("B10").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

    Application.CutCopyMode = False 
    wkbTemp.Close 

End Sub 

希望這有助於。

+0

謝謝你這個工作! – DigitalSea

+0

不客氣!如果滿意,請接受答案。祝你的項目好運。最好的祝福, –

0

這是一個基本的答案,但我會建議遵循VBA層次結構以選擇特定的範圍。

workbook.worksheet.range 

我認爲,如果你定義的工作表,然後使用

wrktemp.Sheets("sheet name").Range("E2:E25") 

我相信,這將在追求你的問題的幫助

相關問題