Excel电子表格 - 分发主表单行并删除重复项


0

我有一张主表,我将行分配到具有特定标签的不同表单。

enter image description here

我想让每一行分配到适当的选项卡(来自主服务器),这取决于B列中的信息。

我使用代码来分发列,但如果更改了列,则无法从主列中删除/更新列。然后我添加了一个ID#,它对每个任务都是唯一的。

我尝试将代码更改为从B列读取,但我最终得到的编号为1-31的新工作表。代码在我添加到ID#列之前有效并且有一行: Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _A3

我的代码:

Sub ProcessRows()

Dim rng As Range, cell As Range
Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
                 ActiveSheet.Cells(Rows.Count, 1).End(xlUp))

For Each cell In rng.Cells
    cell.EntireRow.Copy CopyTo(cell)
Next cell
End Sub

'Return a range object to which a row should be copied
'  Range returned is determined by the value in "rng"
Function CopyTo(rng As Range) As Range

Dim s As Excel.Worksheet, sName As String

sName = Trim(rng.Value) 'just in case...

On Error Resume Next               'ignore any error
Set s = ThisWorkbook.Sheets(sName) 'see if we can grab the sheet
On Error GoTo 0                    'stop ignoring errors

If s Is Nothing Then    'sheet didn't exist: create it
    Set s = ThisWorkbook.Sheets.Add( _
      after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    s.Name = sName
    rng.Parent.Rows(1).Copy s.Range("a1") 'copy headers
End If                  'needed a new sheet
'return the first empty cell in column 1
Set CopyTo = s.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End Function

我遇到的问题是,如果没有唯一标识符,我不知道如果一条线路已经改变并且更新它并且我最终得到重复,那么如何让宏解密。我们全年都会添加到此工作簿中,因此对单个工作表进行宏更新可以节省大量时间。

总结一下,我需要一个宏:

  1. 将每个主表单行分配给每个适当标记的工作表。
  2. 如果有任何更改,我需要每个唯一的ID#来更新该行。
  3. 我还需要确保工作表上不存在重复项。

如果有办法让宏自动运行关闭文件,这将是一个奖金,但手动运行宏是我可以忍受的东西。


重复ROWS和信息不更新

Answers:


0

修改此代码

Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
             ActiveSheet.Cells(Rows.Count, 1).End(xlUp)) 

因为它正在读取第一列,对此:

Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
             ActiveSheet.Cells(Rows.Count, 2).End(xlUp))

谢谢,这完全奏效了!我还需要让我的主表更新任何更改的信息而不添加相同的行(ID#)。我正在努力研究如何做到这一点,但到目前为止我没有任何运气。我最终得到4行具有相同的ID#和不同的信息或我有几行具有相同的信息,并没有显示任何变化:(
Michelle

您的意思是只替换相同ID的信息

是。现在,每次我运行宏时,它都会将相同的行广告到相应的工作表中。我想阻止它发生,只是更新信息。谢谢你回答Sam :)
Michelle

我已将问题的图像添加到原始帖子中。它位于链接的底部:)
Michelle

您必须找到要更新的事务的ID,然后替换相应表单中的行
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.