|
楼主 |
发表于 2023-10-11 13:48
|
显示全部楼层
很感谢您的解答,但是有几个代码意思我想问一下,是不是那个意思,意思我都备注在代码后面,然后我想问问如果左边出现类似2023-9-1 金额100一次,但是右边出现2023-9-1 金额100一次两次的情况下,能不能设置成,只清楚数据一次呢?
- Sub check()
- Dim ws As Worksheet
- Dim arr()
- Dim lastRow As Long
- Dim lastCol As Long
-
- Set ws = Sheets("Sheet1")
- With ws
- lastRow = .UsedRange.Rows.Count
- lastCol = .UsedRange.Columns.Count
- arr = .Range("A4:M" & lastRow).Value'A4行开始到M列数据吗?
- End With
- For i = 1 To UBound(arr)
- If arr(i, 3) <> "" Then'这里是指从第三行开始吗
- For j = 1 To UBound(arr)
-
- If CDate(arr(i, 1)) = CDate(arr(j, 10)) Then'这里是指第一列A的数据等于第10列J借方发生额吗
- If arr(i, 5) <> 0 Then'第五列贷方发生额不为空
- If CDbl(arr(i, 5)) = CDbl(arr(j, 11)) Then'第五列与第11列贷方数据比对
- arr(i, 5) = 0
- arr(j, 11) = 0
- GoTo NextFor
- End If
- ElseIf arr(i, 4) <> 0 Then
-
- If CDbl(arr(i, 4)) = CDbl(arr(j, 12)) Then’请问这里是不是比对借方数据?但是对应列数不对吧,应该是4比对9列数据吧?
- arr(i, 4) = 0
- arr(j, 12) = 0
- GoTo NextFor
- End If
- End If
- End If
-
- Next
- End If
- NextFor:
- Next
- ws.Range("A4").Resize(UBound(arr), UBound(arr, 2)) = arr
- End Sub
复制代码 |
|