在Excel中基于其他单元格中的值复制单元格

我想知道如何编写一个macros来将L3的值复制到L2,这是基于A2和A3相等而B2和B3也相等的事实。 在随后的列A和列B不相等的情况下,macros不需要向上推送数据。 在某些情况下,可能有多达10个后续行,其中A和B列值相等,最早的月份值需要滚动到A和B匹配的最高行。

整张纸大约有150行,有许多城市和公司的价值。 我目前正在手动执行这个操作,而且很耗时。 电子表格的目的是提供基于从我们基于SQL的CRM软件包中提取的数据的销售访问摘要。 第4行没有任何有意义的数据就是上下文,但是如果数据汇总到第2行,那么只要列A和B匹配的最上一行代表访问的所有月份,就不会影响数据。

我猜测macros需要循环通过JAN(E列)并完成该列,然后循环通过P列G到P之后。 只有列E到P需要操纵。 如果数据在单元格中被连接或者被覆盖,我不认为会有任何负面的后果。 macros完成后,给定公司的最上一行应包含所有访问月份的值。

我的编程知识是有限的,但我通常可以反向工程代码足以修改它,如果我得到一个很好的示例。 我希望我的要求清楚。

根据你的第一个问题, “如果B2 = B3和A2 = A3如何将L3复制到L2” ,这个基本macros将使你开始沿着这些线开始:

 Option Explicit Sub CopyUP() Dim LR As Long, Rw As Long, col As Long LR = Range("A" & Rows.Count).End(xlUp).Row 'last row with data For Rw = LR To 2 Step -1 'from the bottom up, compare If Range("A" & Rw) = Range("A" & Rw - 1) And _ Range("B" & Rw) = Range("B" & Rw - 1) Then For col = 5 To 16 'columns E:P If Cells(Rw, col) <> "" Then Cells(Rw - 1, col) = Cells(Rw, col) Next col End If Next Rw End Sub