簡體   English   中英

宏 - 將由復選框觸發的同一行中的某些單元格復制到不同的工作表

[英]Macro - Copy CERTAIN Cells in Same Row, Triggered by a Checkbox, to Different Worksheet

需要一些幫助。 我有一個模板,可以將數據從不同的程序導出到其中。 數據行因導出而異,每次導出都需要一個新工作簿。

我目前編寫了一個“主”宏,用於清理工作表(格式、文本到數字等),並在包含數據的每一行的末尾添加復選框。 這些復選框鏈接到一個單元格。 操作員完成工作表后,他們將需要選中“超出規格”的每一行數據的復選框。 然后這些行將被復制到工作簿中的下一張紙上。 這是由一個按鈕觸發的。 當我只想復制“A”到“I”列中的單元格時,我當前的宏可以復制整行數據。 列“J”和列中的單元格包含不需要復制的數據。

這是我當前的宏,就像我說的,復制整行:

Sub CopyRows() 
    Dim LRow As Long, ChkBx As CheckBox, WS2 As Worksheet
    Set WS2 = Worksheets("T2 FAIR (Single Cavity)")
    LRow = WS2.Range("A" & Rows.Count).End(xlUp).Row

    For Each ChkBx In ActiveSheet.CheckBoxes
        If ChkBx.Value = 1 Then
            LRow = LRow + 1
            WS2.Cells(LRow, "A").Resize(, 14) = Range("A" & _
            ChkBx.TopLeftCell.Row).Resize(, 14).Value
        End If
    Next
End Sub

在等式的右側,您的Range()對象未正確限定(使用工作表)。 所以,我在這個例子中使用了假的wsX

另外,我使用了“D”的結尾列 - 但您可以更改為您需要的任何內容。

LRow = LRow + 1
r = ChkBx.TopLeftCell.Row

ws2.Range(ws2.Cells(LRow, "A"), ws2.Cells(LRow, "D")) = wsX.Range( _
            wsX.Cells(r, "A"), wsX.Cells(r, "D"))

或者

ws2.Range("A" & LRow & ":D" & LRow) = wsX.Range("A" & r & ":D" & r)

來自評論:模板總是從“A19”中導入的數據開始。 當我運行此宏時,要將選中的數據復制到下一個工作表,它以單元格“A18”開頭。 我不知道為什么。 如何指定要在下一個工作表上以“A19”開頭復制選中的數據?

如果它總是LRow一個,你可以只加 1。我不確定你的布局如何,所以這將是你必須添加到LRowr 所以要么

ws2.Range("A" & LRow + 1 & ":D" & LRow + 1) = ...

或者

... = wsX.Range("A" & r + 1 & ":D" & r + 1)

答案如下:

Sub CopyRows()

    Dim ws1 As Worksheet
    Set ws1 = Worksheets("T1 FAIR (Single Cavity)")

    Dim ws2 As Worksheet
    Set ws2 = Worksheets("T2 FAIR (Single Cavity)")

    Dim LRow As Long
    LRow = ws2.Range("A" & rows.count).End(xlUp).row

    Dim r As Long

    Dim ChkBx As CheckBox
    For Each ChkBx In ws1.CheckBoxes
        If ChkBx.value = 1 Then

            LRow = LRow + 1
            r = ChkBx.TopLeftCell.row

            ws2.Range("A" & LRow + 1 & ":I" & LRow + 1).value = _
            ws1.Range("A" & r & ":I" & r + 1).value

        End If
    Next

End Sub

暫無
暫無

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

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