0
我有下面写的代码,出于某种原因不起作用。问题在于使用位于工作表(2)上的信息的变量b的定义。该行之前的所有代码都很好。错误引用另一个工作表上的单元格
请注意,变量ind
是全局变量,并且在此变量之前的前一个子变量上定义。
代码写在“This Workbook”选项卡上。
如果有人能分享一些问题可能会是很好的。
坦克很多。
Sub verifica() ' verifica e pinta a vermelho os casos mal atribuidos
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
Dim n As Integer 'contador de incerências,
Dim n1 As Integer 'contador de casos de carga em falta
Dim n2 As Integer 'contador de casos de carga em excesso
ws1.Activate
'verifica incoerências nos coeficientes e nos casos de carga
n = 0
For i = 0 To ind
Range("Case1").Offset(i, 0).Select
p = 0
Do While ActiveCell.Value <> ""
If Range("Case1").Offset(i, p).Value <> ws2.Range("Case2").Offset(i, p).Value Then
Range("Case1").Offset(i, p).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
n = n + 1
End If
p = p + 1
Range("Case1").Offset(i, p).Select
Loop
Next i
'verifica para cada comb, se há casos de carga em em falta ou em excesso
n1 = 0
n2 = 0
For i = 1 To ind
a = Range(Range("Case1").Offset(i - 1, 0), Cells(Range("Case1").Offset(i - 1, 0).Row, Columns.Count).End(xlToLeft)).Count
With ws2
b = .Range(.Range("Case2").Offset(i - 1, 0), Cells(.Range("Case2").Offset(i - 1, 0).Row, Columns.Count).End(xlToLeft)).Count
End With
MsgBox b
If a > b Then
n1 = n1 + 1
ElseIf a < b Then
n2 = n2 + 1
End If
Next i
If n = 0 Then
MsgBox "Tudo OK!"
Else
MsgBox "Nº de incoerências: " & n
End If
Range("J2") = n
Range("P2") = n1
Range("V2") = n2
End Sub
非常感谢:D。学过的知识。 – user2292821