VBA For if 问题

2025-03-23 05:02:03
推荐回答(4个)
回答1:

For i = 2 To 20
  If Cells(i, 1) = "" Then
    Range(Cells(2, 1), Cells(i - 1, 6)).Select
    Selection.Copy
  Else
    Exit For
  End If
Next i

你这个代码当只要在条件为真之前有一个条件为假则会结束循环,由于你介绍的代码有限,请自行修改之,或介绍详细一点我帮你修改。

而且这一句有点逻辑上不合理:

Range(Cells(2, 1), Cells(i - 1, 6)).Select

当i为2时其引用的单元格范围相当于[A2:F1],软件会自动纠正为[A1:F2],相当于:

Range(Cells(i-1, 1), Cells(i , 6)).Select

或相当于:

Range(Cells(i-1, 1), Cells(2, 6)).Select

或相当于

Range(Cells(1, 1), Cells(i , 6)).Select

总之,这应该算得上是一个错误。

回答2:

能说的再详细点吗?想复制什么

回答3:

你要复制到那个地址

回答4:

这段代码最终执行Copy.所以也许看上去没有反应。