在Excel工作表中查找计数器部件记录

时间:2018-04-17 15:46:30

标签: excel vba excel-vba duplicates

我只想创建一个普通的宏,它将执行以下操作:

image1

如果有对应记录,它只会检入不同的数据集。 首先,它检查是否找到相同的金额,如果是,它检查日期和文本。如果一切都相同,则应突出显示记录。 我是新手,所以我尝试了第一步,只是为了检查正确的数量并突出显示单元格,但即使这不是真的有效:(。我只是尝试了一个双循环,这里是代码:< / p>

Dim row1 As Integer
Dim row2 As Integer
Dim index1 As Integer
Dim index2 As Integer

index1 = 0
index2 = 0
row1 = 2
row2 = 10

Do
 Do
    If Cells(row1, 1).Value = Cells(row2, 13).Value Then
    Cells(row1, 1).Interior.ColorIndex = 3
        Exit Do
    End If
    row2 = row2 + 1
   index2 = index2 + 1
  Loop Until index2 = 12

    index1 = index1 + 1
    row1 = row1 + 1
Loop Until index1 = 5

稍后我还想要包含一个计算行数的函数,这样如果行数会改变,这个宏也可以工作。

Excel宏扩展名:

Screenshot for extension

1 个答案:

答案 0 :(得分:1)

因此,为了针对多个条件进行测试,您希望每次都使用And并更改Cells语句中的列定位。

此外,您需要在第二次index2循环后将Do重置为0,否则它将超过12并且永远不会达到Loop Until index2 = 12的退出条件,从而导致{{1} }}

要突出显示整行(而不只是A列,您需要使用Overflow来表示该范围。

最后,您需要让您的第一个循环退出条件为Range(Cells(x, y), Cells(x, y)),因为您将Loop Until index1 = 4初始化为0,5次迭代的等效值为0到4,而不是0到5。

(另外,我单独留下你的变量,但请注意,在index1 s中声明变量时的最佳做法是将它们声明为Loop s,而不是Long s。整数最大约为32,000行,其中Integer可超过一百万。)

Long

img1