将另一张表中的数据放入主表中的相应行

将另一张表中的数据放入主表中的相应行

我得到了一个“新”表,它将每天生成几次,并且在此子表之后将被删除。

我想从“新”表复制数据并将其粘贴到现有的“记录”表中

  1. 将数据粘贴到相应的行中(不同的水果)
  2. 如果“记录”表中不存在水果,则添加新的水果行
  3. 从(az)开始排序,“记录”表中的整个使用范围按水果名称的第一列排序
  4. 对使用范围内的空白单元格填充零
  5. 在最后使用的范围行 + 1 处添加一个总计行(因此,每当此表针对新的摊位订单运行时,它都会有所不同)

例如

表格:记录,新的,我想要它
在这种情况下,你可以注意香蕉、蓝莓和火龙果

我现在收到“Block If without End If”的错误。
更新:我错过了查找 blankCol 的 End If。现在代码没有错误,但我无法获得我想要的结果。
这是我目前的记录表
我不知道代码中出了什么问题,因为香蕉、蓝莓应该作为新水果添加到“记录”中,但现在我在列表中得到了一个额外的草莓,想必它应该是关于 else 条件的 smtg,但我不知道如何修复它。

目前我只达到了要求的第二部分,因为我对使用的范围还不太熟悉,所以在编码方面我仍然遇到一些困难。

Sub fruit()

'find first blank column
blankCol = ThisWorkbook.Worksheets("Records").Cells(1, Columns.Count).End(xlToLeft).Column
If blankCol > 1 Then
blankCol = blankCol + 1
End If

'paste the list into existing "Records" sheet
Set rsht = ThisWorkbook.Worksheets("Records")
Set r = rsht.Range("A1") 'record sheet

'set up header for new entry in "Records"
r.Offset(0, blankCol - 1).Value = "new" 'new sheet name from different stalls
r.Offset(1, blankCol - 1).Value = "Amount"

'new sheet with new data
Set temp = ThisWorkbook.Worksheets("new")
Set n = temp.Range("A1") 'temp : new

Dim lastrow As Long
lastrow = temp.Cells(Rows.Count, "A").End(xlUp).Row 'last row in new temp sheet

Dim nextrow As Long
nextrow = rsht.Cells(Rows.Count, "A").End(xlUp).Row + 1 'find next empty row in "Records"

    j = 2 '"Records" sheet
    For i = 1 To lastrow 'refer new

        If n.Offset(i, 0).Value = r.Offset(j, 0).Value Then 'if name matched then

            r.Offset(j, blankCol - 1).Value = n.Offset(i, 1).Value 'copy respective value

        Else

            'paste new name into next available row
            r.Offset(nextrow, 0).Value = n.Offset(i, 0).Value 'fruits
            r.Offset(nextrow, blankCol - 1).Value = n.Offset(i, 1).Value 'amount

        End If

    j = j + 1        
    Next i

End Sub

'delete that new sheet
'ThisWorkbook.Worksheets("new").Delete

相关内容