首页 > 解决方案 > Excel VBA更新范围内的单元格

问题描述

更新范围内所有单元格的最佳方法是什么?我指定了循环通过的所需范围,但我只能从光标所在的位置更新当前和上一个单元格。

Sub updateValues()

    Dim cell As Range
    
    For Each cell In Range("C1:C20")

        If ActiveCell.Value = ActiveCell.Offset(-1, 0) Then
        
        ActiveCell.Offset(-1, 0).Value = ActiveCell.Offset(-1, 0).Value + " Start"
            
        ActiveCell.Value = ActiveCell.Value + " Stop"
        
        End If
    
    Next cell
    
End Sub

我正在尝试从此更新 Excel 中的 ~400k 记录:

在此处输入图像描述

为此,但它只更新活动单元格及其以前的单元格:

在此处输入图像描述

我已经尝试了我在网上看到的各种实现,但由于某种原因它似乎永远不会循环。任何建议将不胜感激。

标签: excelvba

解决方案


如果没有 VBA,您可以只用“1”和“2”创建一个新列。

  1. 复制 1 和 2,“从下往上”粘贴
  2. 隐藏2,用start替换所有可见的。
  3. 隐藏1,用停止替换所有可见的。

我认为即使文件很大,它也应该可以工作。

在此处输入图像描述

约翰兄弟


推荐阅读