【问题标题】:Looped call on rows in VBA循环调用 VBA 中的行
【发布时间】:2017-07-25 14:48:04
【问题描述】:

我正在尝试在我的顶行上运行一个调用,然后删除该行并将单元格向上移动并再次在新的顶行上运行它。重复练习,直到没有更多的行。是的,我知道这可能是一种缓慢的方法,但我的调用每行大约需要 10 秒,所以这是跟踪进度(即剩下多少行)的好方法。

这是我到目前为止所得到的,但它不理解我删除范围 A2:C2 并在范围 A3 中有值时将单元格向上移动的请求。

任何帮助将不胜感激!

Sub loop_through_rows()

Dim rngQuantityCells As Range

Set rngQuantityCells = Range("A2", Range("A2").End(xlDown))

For i = 1 To rngQuantityCells
Call RunSplit

If Range("A3").Value > 0
then
Range("A2:C2”).Delete Shift:=xlUp

End If
Next
End Sub

【问题讨论】:

  • 如何/何时设置变量 rngSinglecell?
  • 如果你能提供截图和解释,这将帮助你得到更好的答案。
  • (您没有收到错误消息吗?您的then 应该与If 位于同一行,AFAIK)。
  • 我的 Range("A2:C2") 周围出现“编译错误:语法错误”。Delete Shift:=xlUp

标签: excel vba call


【解决方案1】:

试试这个:

Sub loop_through_rows()
Dim rngQuantityCells As Range
Set rngQuantityCells = Range("A2", Range("A2").End(xlDown))

For i = 1 To rngQuantityCells
    Call RunSplit
    If Range("A3").Value > 0 Then
        Range("A2:C2").Delete Shift:=xlUp
    End If
Next
End Sub

请注意,您需要在同一行上使用 Then。此外,您在 Range("A2:C2") 上的原始帖子中有两种“样式”(?) 引号。

【讨论】:

  • 非常感谢,多么愚蠢的错误!经过一些小动作后它就可以工作了。非常感谢!
猜你喜欢
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多