从 CSV 复制范围到 excel 错误的宏

Macro to copy range from CSV to excel error

能否请您更正以下代码,我可以执行第一部分,但在第二部分和第三部分 part.Need 将范围从 csv 复制到 excel 时出现错误。我可以从 B2:B10 从 excel 中的 CSv 复制到 A2,但是 C2:C10 和 D2:D10 失败了。

Sub Copy_Paste()
Const csvFile = "C:pathname\filename.csv"
Dim ws As Worksheet, csv As Workbook

Set ws = ThisWorkbook.Sheets("Sheet2")
Workbooks.Open csvFile

'Copying B2:B10 from CSV file to A2 in xl file
Set csv = ActiveWorkbook
cName = csv.Name
ActiveSheet.Range("B2:B10").Copy
ws.Activate
ws.Range("A2").PasteSpecial xlPasteValues

'Copying C2:C10 from CSV file to G2 in xl file
Set csv = ActiveWorkbook
cName = csv.Name
ActiveSheet.Range("C2:C10").Copy
ws.Activate
ws.Range("G2").PasteSpecial xlPasteValues

'Copying D2:D10 from CSV file to Y2 in xl file
Set csv = ActiveWorkbook
cName = csv.Name
ActiveSheet.Range("D2:D10").Copy
ws.Activate
ws.Range("Y2").PasteSpecial xlPasteValues


End Sub

仅粘贴值时,将两个范围简单地等同起来会更快。

Sub Copy_Paste()

Const csvFile = "C:pathname\filename.csv"

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")

Dim csv As Workbook
Set csv = Workbooks.Open(csvFile)

Dim csvws As Worksheet
Set csvws = csv.Worksheets(1)

ws.Range("A2:C10").Value = csvws.Range("B2:D10").Value

End Sub

如果您的范围不一致,则使用多行,每个一致区域一行:

Sub Copy_Paste()

Const csvFile = "C:pathname\filename.csv"

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")

Dim csv As Workbook
Set csv = Workbooks.Open(csvFile)

Dim csvws As Worksheet
Set csvws = csv.Worksheets(1)

ws.Range("A2:A10").Value = csvws.Range("B2:B10").Value
ws.Range("B2:B10").Value = csvws.Range("C2:C10").Value
ws.Range("C2:C10").Value = csvws.Range("D2:D10").Value

End Sub