簡體   English   中英

將列從一張紙復制到另一張工作簿

[英]Copy columns from one sheet to another workbook

我有一個包含多個工作表的工作簿。我有一個名為“ MergedData”的工作表,我需要將BL列復制到一個名為“ Bookings.xls”的工作簿中

B列是一個詞序號,L是一個£值,我需要它復制超過£0.01的值並排除所有帶有nil值的值。

數據將需要放入“預訂”工作簿的ABA行中,從第9行開始。

運行代碼時,每個月都需要擦除數據。

我將將此代碼應用於不同承包商的多個工作簿。 因此,代碼無法硬鎖定到原始文件。 需要是活動工作簿, Bookings.xls文件是所有承包商文件夾中的靜態工作簿。

感謝所有的支持。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM