首页 > 解决方案 > 如果行之间的值不同,则检查列并交替插入数字

问题描述

Excel表格

     |      A       |       B
-----|--------------|-----------------
1    |  Product_A   |   
2    |  Product_A   |
3    |  Product_A   |
4    |  Product_B   |       1
5    |  Product_C   |       2
6    |  Product_C   |
7    |  Product_D   |       1
8    |  Product_E   |       2
9    |  Product_E   |
10   |  Product_E   |       
11   |  Product_F   |       1
12   |              |

在上面的 Excel 表格中,我有一个不同产品的列表Column A
一个产品可以出现多次

目前,我正在使用它VBA来检查产品是否在当前行和一行Column A之间切换。 如果产品切换,号码插入。
1Column B

Sub FilB()
Dim N As Long
N = Cells(Rows.Count, "A").End(xlUp).Row
Range("B2:B" & N).Formula = "=IF(A2=A1,"""",1)"
End Sub

但是,现在我想包含以下条件:如果先前插入的数字是1一个数字应该是2,如果先前插入的数字是2一个数字应该是1

我该如何修改VBA才能实现这一目标?

标签: excelvba

解决方案


交替值

Excel

=IF(A2=A1,"",MOD(COUNT(B$1:B1),2)+1)

VBA

Option Explicit

Sub FilB()
    Dim n As Long
    n = Cells(Rows.Count, "A").End(xlUp).Row
    Range("B2:B" & n).Formula = "=IF(A2=A1,"""",MOD(COUNT(B$1:B1),2)+1)"
End Sub

推荐阅读