Arrays 如何在excel中合并重复行并求和值3列
各位好,, 我在创建VBA excel以复制数据时遇到问题 如何在excel中合并重复行并求和值3列Arrays 如何在excel中合并重复行并求和值3列,arrays,vba,duplicates,Arrays,Vba,Duplicates,各位好,, 我在创建VBA excel以复制数据时遇到问题 如何在excel中合并重复行并求和值3列 多谢各位 在OP澄清后编辑 试试这个 维护原始数据的解决方案: Option Explicit Sub main() With Worksheets("Sheet01") '<== change "Sheet01" as per your actual sheet name With .Range("A1:C1").Resize(.Cells(.rows.Count, 1).
多谢各位 在OP澄清后编辑 试试这个 维护原始数据的解决方案:
Option Explicit
Sub main()
With Worksheets("Sheet01") '<== change "Sheet01" as per your actual sheet name
With .Range("A1:C1").Resize(.Cells(.rows.Count, 1).End(xlUp).Row)
.Copy
With .Offset(, .Columns.Count + 1)
.PasteSpecial xlPasteAll ' copy value and formats
.Columns(2).Offset(1).Resize(.rows.Count - 1, 2).FormulaR1C1 = "=SUMIF(C1,RC1,C[-" & .Columns.Count + 1 & "])"
.Value = .Value
.RemoveDuplicates 1, xlYes
End With
End With
End With
End Sub
选项显式
副标题()
对于工作表(“Sheet01”)”此表使用删除重复项:
Sub dupremove()
Dim ws As Worksheet
Dim lastrow As Long
Set ws = Sheets("Sheet1") ' Change to your sheet
With ws
lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
With .Range("B2:C" & lastrow)
.Offset(, 4).FormulaR1C1 = "=SUMIF(C1,RC1,C[-4])"
.Offset(, 4).Value = .Offset(, 4).Value
End With
With .Range("A1:A" & lastrow)
.Offset(, 4).Value.Value = .Value
End with
.Range("E1:G" & lastrow).RemoveDuplicates 1, xlYes
End With
End Sub
您想在vba或直接公式中执行此操作吗?两者都有可能我想在VBA Excel中实现。谢谢你的信息谢谢你的好意。如果我想保留原始数据。通过添加数据处理。放在原始数据的一侧,看图片。再次感谢Scott Craner的解决方案,您只需将RC[-26]
替换为C[-26]
,实际上我看到Scott Craner的解决方案也没有维护原始数据。但它有非常好的想法。所以我拿着它们编辑了我的帖子,添加了一个维护原始数据的解决方案。归功于斯科特!很好的解决方案。只需要用C[-26]
替换RC[-26]
。在OP澄清后,我采纳了你的想法来编辑我的答案,以保持原始数据。所以感谢你@用户3598756谢谢你的帮助。我已编辑以移动到侧面。@GpowerGravityPower请参见“立即编辑”将其张贴到侧面。
Sub dupremove()
Dim ws As Worksheet
Dim lastrow As Long
Set ws = Sheets("Sheet1") ' Change to your sheet
With ws
lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
With .Range("B2:C" & lastrow)
.Offset(, 4).FormulaR1C1 = "=SUMIF(C1,RC1,C[-4])"
.Offset(, 4).Value = .Offset(, 4).Value
End With
With .Range("A1:A" & lastrow)
.Offset(, 4).Value.Value = .Value
End with
.Range("E1:G" & lastrow).RemoveDuplicates 1, xlYes
End With
End Sub