从csv文件复制并粘贴到excel文件

我修改了一段打开一个.csv文件的代码,复制一个选定的范围,并将其粘贴到Excel工作表的选定单元格中。

我无法select.csv文件中的下一个范围来粘贴到Excel文件中。 它只适用于第一个范围(E2:E25)。

我希望它从.csv文件复制/粘贴中select下一个范围(B2:B25),但它只能从Excel文件中select。 我如何解决这个问题? 谢谢。

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 

在您的VBAmacros中添加行: 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 

希望这可能有帮助。

这是一个基本的答案,但我会build议遵循VBA层次结构来select特定的范围。

 workbook.worksheet.range 

我想如果你定义了工作表,然后使用

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

我相信这将有助于追求你的问题