a = 2
k = 35
j = 3
For Each Cell In Range(Cells((k + 1), j), Cells((k + 1), (a + (j - 1))))
If ActiveSheet.Cells(k, (j + 1)).Value = a Then
Cell.Value = m
Else
Cell.Value = Sheets("LAP " & (a - 1)).Cells((k + 1), j).Value
End If
Next Cell
答案 0 :(得分:1)
您的语法通常没问题,但是我想指出一些风险和问题:
始终使用Option Explicit
:虽然起初没有用,但将来可以避免很多麻烦。它使您可以在使用变量之前声明变量,这将导致我们:
始终声明变量,例如:Dim a As Long, j As Long, k As Long
。
使用Cell
作为循环变量,名称有意义且很好,但是VBA可能会出于其他目的保留该名称,这将导致名称冲突。