1
我正在尝试读取源Excel文件并复制一些值并将其分配给目标工作表中的不同单元格。但在执行宏后。粘贴的价值不符合预期。使用VBA从Excel复制/粘贴值时发生的问题
代码:
Sub Import()
Dim SourceFile As Workbook
Dim SourceTab As Worksheet
Dim TargetTab As Worksheet
SourceFileName = Application.GetOpenFilename("Excel Files , *.xls;*.xlsx;*.csv")
If SourceFileName = False Then Exit Sub
Application.ScreenUpdating = False
Set TargetTab = Sheets("Output")
'TargetRow = TargetTab.Cells(TargetTab.Cells.Rows.Count, 1).End(xlUp).Row + 1
TargetRow = 2
Set SourceFile = Workbooks.Open(SourceFileName)
SourceFile.Activate
Set SourceTab = Sheets("Input")
SourceTab.Activate
For i = 1 To Cells(Cells.Rows.Count, 2).End(xlUp).Row
If SourceTab.Cells(i, 2) = "VS" Then
TargetTab.Cells(i, 3).Value = SourceTab.Cells(i, 31).Value
TargetTab.Cells(i, 5).Value = SourceTab.Cells(i, 11).Value
TargetTab.Cells(i, 6).Value = SourceTab.Cells(i, 19).Value
TargetTab.Cells(i, 7).Value = SourceTab.Cells(i, 27).Value
TargetTab.Cells(i, 5).Value = SourceTab.Cells(i, 4).Value
TargetTab.Cells(i, 11).Value = SourceTab.Cells(4, 5).Value
TargetTab.Cells(i, 13).Value = SourceTab.Cells(2, 25).Value
TargetTab.Cells(i, 16).Value = SourceTab.Cells(i, 8).Value
SourceTab.Cells(i, 3).Resize(1, 50).Copy
ThisWorkbook.Activate
TargetTab.Activate
Cells(TargetRow, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
SourceFile.Activate
TargetRow = TargetRow + 1
'TargetNewRows = TargetNewRows + 1
End If
Next
SourceFile.Close False
Application.ScreenUpdating = True
MsgBox "Done"
End Sub
任何人,请你帮助我在这场惨败! –
**你是说粘贴工作没有错误,但粘贴的值是不正确的** ** –
我修改了代码,现在它的工作正常......但是当我在Excel 2007中运行宏时,它的内部完成30秒,而在Office 365 proplus中运行半小时以上,并且根本没有完成......这里是修改后的代码..你能否请检查并提供建议。 –