如果A列不存在,如何將A列從sheet1中的一行複製到sheet2

扎克莫

我想通過在 L 列中放置一個 X 來選擇一些行,然後將所選行(僅列 A 到 M)複製到 sheet2 中的下一個空閒行。

空閒行意味著 A 到 M 列中沒有任何內容,因為下一列中已經填充了內容。

副本不應刪除 M 列之後已經存在的內容。

如果該行已經在 sheet2 中,則無法添加該行,為了測試這一點,我在 M 列中為該行設置了一個唯一 ID。

應複製的行的某些列有時為空。

我嘗試的部分內容:

Sub GAtoList()

    Dim xRg As Range

    Dim xCell As Range

    Dim A As Long

    Dim B As Long

    Dim L As Long
    

    A = Worksheets("knxexport").Range("d" & Worksheets("knxexport").Rows.Count)

    B = Worksheets("Sheet2").UsedRange.Rows.Count
    

    If B = 1 Then

    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then B = 0

    End If

    Set xRg = Worksheets("knxexport").Range("L1:L" & A)

    Application.ScreenUpdating = False

    For L = 1 To xRg.Count

        If CStr(xRg(L).Value) = "X" Then

            xRg(L).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & B + 1)

            B = B + 1
            Cells(L, B).EntireRow.Interior.ColorIndex = 4


        End If

    Next
    'Erase the X that select the row I want to copy
    Worksheets("knxexport").Columns(12).ClearContents
    Worksheets("Sheet2").Columns(12).ClearContents
    Application.ScreenUpdating = True

End Sub

D列永遠不會為空,所以我用它來檢查源表的末尾

我獲取數據的 knxexport 表

我想複製它們的 sheet2

法尼杜魯

請測試下一個代碼:

Sub GAtoList()
 Dim sh As Worksheet, shDest As Worksheet, lastRL As Long, LastRM As Long
 Dim strSearch As String, rngM As Range, arrCopy, cellF As Range, rngL As Range, cellFAddress As String, i As Long, mtch
 
 strSearch = "X"
 Set sh = 'Worksheets("knxexport")   'the sheet to copy from
 Set shDest = 'Worksheets("Sheet2")  'the sheet to copy to
 shDest.Range("M:M").NumberFormat = "@" 'format the M:M column as text
 lastRL = sh.Range("L" & sh.rows.count).End(xlUp).row
 Set rngL = sh.Range("L2:L" & lastRL) 'the range to search for "X"
 Set cellF = rngL.Find(what:=strSearch, After:=sh.Range("L2"), LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False)
 If Not cellF Is Nothing Then     'If at least an "X" string has been found:
    cellFAddress = cellF.Address  'memorize its (first) address
    Do
        LastRM = shDest.Range("M" & shDest.rows.count).End(xlUp).row 'last row in M:M
        If LastRM > 1 Then  'if there already are IDs:
            Set rngM = shDest.Range("M2:M" & LastRM)
            mtch = Application.match(sh.cells(cellF.row, "M").Value, rngM, 0)
            If IsError(mtch) Then 'no ID found
                shDest.Range("A" & LastRM + 1 & ":" & "M" & LastRM + 1).Value = _
                       sh.Range(sh.Range("A" & cellF.row), sh.Range("M" & cellF.row)).Value
            Else
                Debug.Print sh.cells(cellF.row, "M").Value & " already existing..." 'warn in case of ID existence...
            End If
        Else
            'copy in the second row
            shDest.Range("A2:M2").Value = _
                       sh.Range(sh.Range("A" & cellF.row), sh.Range("M" & cellF.row)).Value
        End If
        Set cellF = rngL.FindNext(cellF)
    Loop While cellF.Address <> cellFAddress 'exit to avoid restarting loop from the memorized address   
 Else
    MsgBox strSearch & " could not be found in ""L:"" column...": Exit Sub
 End If
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取 sheet1 中最后填充的列并将 sheet2 中的数据复制到 sheet1

在sheet1的所有行和列中搜索字符串,如果发现则将整个行复制到sheet2

如果sheet1中的“a”列與sheet2中的“a”列匹配,則替換sheet1中的整行

如果Sheet1的A列中的值在Sheet2的B列中出现两次,请在Sheet1中突出显示该值

Google脚本-将SheetC数据从Sheet21复制到columnC Sheet2(如果Sheet2中尚不存在)

Excel VBA 按钮。将行从 Sheet1 复制到 Sheet2 / 条件:列值

如何从 sheet2 在 sheet1 中运行宏

如何将sheet1仅包含正值的那些行反映到sheet2中?

根据Excel中sheet1中的行数在sheet2中创建列

通过将 A 列的值从 sheet2 匹配到 A 列 sheet1 来复制 sheet2 的 B 列

Excel Online-将日期从Sheet1列A复制到Sheet2列B

如果Sheet1 A包含Sheet2 C的一部分,则复制行

Google脚本,如何使用正则表达式将一行从Sheet1复制到Sheet2,而不是仅复制一个单元格?

尝试在sheet1的最后一行的b列中查找单元格的值

如何在Sheet1的A列中标识不同的单词(每行或每个单元格一个单词),然后将这些行复制并粘贴到Sheet2

一旦使用sheet2中日期下的vba数据粘贴进行验证,尝试在sheet 2上30列的一个单元格中验证sheet1上的日期

EXCEL2016。如果Sheet1中的多个单元格与Sheet2中的多个单元格匹配,则突出显示行

如果单元格的颜色为绿色,则从 Sheet1 复制一行并将其粘贴到 Sheet 2 中

如果它们匹配,我需要将 Sheet1 Column A 与 Sheet2 Column A 匹配,然后将 Sheet2 Column B 复制到 Sheet1 Column I

根据单元格条件将Sheet1的活动行复制到Sheet2并避免重复

使用规则自动将单元格从 Sheet2 复制到 Sheet1 上的自定义列

Excel:如何根据 sheet1 中的值是否与 sheet2 中的值匹配来对 sheet2 中的值求和

如何将数据从 sheet1 中的范围复制到 sheet2 5 次,直到到达空单元格?

如何检查另一列中是否不存在一行?

根据标题将数据从Sheet1复制到Sheet2

將每一行值複製到 Pandas 列中

如何从excel sheet2中的excel sheet1打印数字并且重复的数字只能打印一次?

Excel - 如何检查 Sheet1 是否仅包含在 Sheet2 中定义的允许字符

根据Sheet2中的日期清除Sheet1中的内容