【问题标题】:p = p + 1 is not working?p = p + 1 不起作用?
【发布时间】:2018-05-03 11:47:23
【问题描述】:

希望能快速提问。下面的代码就像我需要的那样工作,但是,它似乎没有将行复制到另一张表。事实上...... excel 似乎对 p = p + 1 没有任何作用。我确信这是一个容易犯的错误,但我似乎找不到问题所在。关于为什么这可能不会发生的任何想法?非常感谢。

Sub Pending(): Dim wp As Worksheet, wa As Worksheet, a As Long, p As String
Set wp = Sheets("Pending"): Set wa = Sheets("Projects"):
p = Application.Max(3, wp.Range("A" & Rows.Count).End(xlUp).Row + 1)
For a = 5 To wa.UsedRange.Rows.Count

If wa.Range("Q" & a) = "Move" Then
wa.Range("A" & a).Resize(1, 19).Value = wa.Range("A" & p).Resize(1, 19).Value
wp.Range("A" & p) = "": p = p + 1:

End If
Next a
End Sub

【问题讨论】:

  • 这对我来说毫无意义。你确定你没有在至少两个地方有 ap 倒退吗?
  • 为什么要标记google-spreadsheet
  • 我建议您正确地格式化和缩进您的代码,不要使用冒号 : 代替换行符。这会使您的代码更加混乱且可读性更低。更好的可读性使您的代码更易于维护和调试,从而减少问题。
  • 我能够弄清楚这一点。正如您所指出的,这是由于我混淆了代码的某些部分。谢谢。

标签: excel copying vba


【解决方案1】:

您可能应该转到冒号后的下一行。 改变这个:

wp.Range("A" & p) = "": p = p + 1:

到这里:

wp.Range("A" & p) = "":
p = p + 1:

抱歉之前的错误

【讨论】:

  • 我实际上并没有在帖子中看到“To this:”。道歉。
  • 谢谢,我没注意到
  • 嗯,这两个例子在技术上是完全一样的。冒号只是换行符的替换。添加另一个换行符毫无用处,因为它不会改变任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多