gpt4 book ai didi

Excel 2016 : Insert Row ABOVE find result in table

转载 作者:行者123 更新时间:2023-12-04 20:31:44 26 4
gpt4 key购买 nike

我是编程新手,并试图掌握这些概念。我要完成的工作:

  • 遍历第一个表以获取要搜索的字符串
  • 然后在第二个表中找到该字符串的第一个实例(如果存在)
  • 然后将一行(从第一个表)插入/复制到第二个表中找到实例的行上方(在第二个表中)......或者如果不存在实例:在第二个表的底部添加一个新行并在那里插入/复制行。

  • 我想我的第二部分工作正常

    我的不足之处在于找出正确执行此操作的 ListObject 方法。我尝试使用“activecell”方法,但这并没有给我在表格中的正确位置。我进行了广泛搜索,发现很少使用 ListObject 方法插入甚至粘贴到表中的动态位置。
    Dim lastRow, eachRow1, unitRow, qtyRow As Long
    Dim ws1, ws2, ws3 As Worksheet
    Dim tbl1, tbl2, tbl3 As ListObject
    Dim chkFrst As Boolean
    Dim qtyValue, yumItem As String
    Dim qty, stockQty, calcQty As Integer
    Dim lastDate, reDate As Date
    Dim findRng As Range
    Dim NewRow, addRow As ListRow
    Set ws1 = Sheets("UPDATE")
    Set ws2 = Sheets("DATA")
    Set ws3 = Sheets("LOG")
    Set tbl1 = ws1.ListObjects("Update_Table")
    Set tbl2 = ws2.ListObjects("Data_Table")
    Set tbl3 = ws3.ListObjects("Log_Table")

    For unitRow = 1 To tbl1.ListRows.Count
    yumItem = tbl1.ListColumns("ITEM").DataBodyRange.Cells(unitRow, 1).Value
    Set findRng = tbl3.Range.Find(What:=yumItem)
    If findRng Is Nothing Then
    Set NewRow = tbl3.ListRows.Add(AlwaysInsert:=True)
    NewRow.Range.RowHeight = 25
    NewRow.Range = tbl1.DataBodyRange.Cells.Range("A" & unitRow & ":O" &
    unitRow).Value
    Else
    Application.Goto findRng, True
    ActiveCell.EntireRow.Insert Shift = xlDown
    Dim crntRow As Long
    crntRow = ActiveCell.Row
    Set NewRow = tbl3.InsertRowRange.Cells.Range(crntRow)
    NewRow.Range = tbl1.DataBodyRange.Cells.Range("A" & unitRow & ":O" &
    unitRow).Value
    End If
    Next unitRow

    非常感谢任何和所有帮助!

    最佳答案

    您可以使用 EntireRow.Insert与您的FindRng范围。

    Set findRng = tbl3.Range.Find(What:=yumItem)
    findRng.EntireRow.Insert Shift:=xlDown

    这将在您的范围正上方创建一个新行。这将向下移动找到的行,在原处留下一个空行。1

    只想为某些列插入新行?只需更换 EntireRowColumns() .下面的示例将为列 A:C 插入一行:
    findRng.Columns("A:C").Insert Shift:=xlDown

    1 感谢 clarifying那一点,吉普!

    关于Excel 2016 : Insert Row ABOVE find result in table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49344216/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com