将列从一个工作表复制到另一个工作簿

我有一个工作簿中有多张表。我有一个名为“MergedData”的表,我需要将列BL复制到名为“Bookings.xls”的工作簿中

B列是一个字顺序号,L是一个£值,我需要它复制超过£0.01的值,并排除所有的零值。

数据将需要放置在Bookings工作簿的A行和BA行中,从第9行开始。

代码运行时,每个月都需要清除数据。

我将这个代码应用于不同承包商的多个工作簿。 所以代码不能硬locking到原始文件。 需要成为活动工作簿, Bookings.xls文件是所有承build商文件夹中的静态工作簿。

感谢所有的支持。

 Private Sub CommandButton1_Click() Dim LastDRow As Integer, _ InitWorkSheet As Worksheet, _ DestWorkSheet As Worksheet, _ myData As Workbook, _ LastWRow As Integer Set InitWorkSheet = ActiveWorkbook.Sheets("MergedData") 'Or ActiveWorkbook.Sheets("Sheet1") Set myData = Workbooks.Open(ActiveWorkbook.Path & "\Bookings.xls") DoEvents Set DestWorkSheet = myData.Sheets("Sheet1") 'Or myData.Sheets("Sheet1") With InitWorkSheet LastDRow = .Rows(.Rows.Count).End(xlUp).Row MsgBox LastDRow For i = LastDRow To 1 Step -1 If .Cells(i, "L") < 0 Then Else LastWRow = DestWorkSheet.Cells(DestWorkSheet.Rows.Count, "A").End(xlUp).Row If LastWRow < 9 Then LastWRow = 9 DestWorkSheet.Cells(LastWRow, 1) = .Cells(i, "B") DestWorkSheet.Cells(LastWRow, 2) = .Cells(i, "L") End If Next i End With myData.Save End Sub` 

这个,让我知道:

 Private Sub CommandButton1_Click() Dim LastDRow As Integer, _ InitWorkSheet As Worksheet, _ DestWorkSheet As Worksheet, _ myData As Workbook, _ LastWRow As Integer Set InitWorkSheet = ActiveWorkbook.Sheets("MergedData") Set myData = Workbooks.Open(ActiveWorkbook.Path & "\Bookings.xls") Set DestWorkSheet = myData.Sheets("Sheet1") DestWorkSheet.Cells.ClearContents With InitWorkSheet LastDRow = .Rows(.Rows.Count).End(xlUp).Row For i = 1 To LastDRow 'To 1 Step -1 If .Cells(i, "L") < 0.01 Then Else LastWRow = DestWorkSheet.Cells(DestWorkSheet.Rows.Count, "A").End(xlUp).Row + 1 If LastWRow < 9 Then LastWRow = 9 DestWorkSheet.Cells(LastWRow, 1) = .Cells(i, "B") DestWorkSheet.Cells(LastWRow, 2) = .Cells(i, "L") End If Next i End With myData.Save End Sub