首页 > 解决方案 > VBA 添加相邻单元格

问题描述

我们公司有一个电子表格来跟踪工作时间。它有一列显示每周在给定项目上花费的小时数和该项目的总小时数。每个项目都有一行。每个星期一我都会手动将上周的小时数添加到总小时数列中。我想自动化这个。我正在尝试遍历 J 列,如果 J 中有一个数字,则将其添加到 K。然后清除单元格 J(我尚未将此部分添加到下面的代码中)。J 可以为空白,或具有非数字值,应跳过这些值。J 永远不会超过 J500。

这是我的代码,它似乎只是在“Megan in Progress”中循环当前选定的行 500 次,而不是从 J1 移动到 J500。有人可以帮我指出我做错了什么吗?谢谢你。

Sub UpdateTotals()
Sheets("Megan In Progress").Activate
For Each cell In Sheets("Megan In Progress").Range("J1:J500")
    Dim weekVal As Double
    If IsNumeric(cell) = True Then
        weekVal = cell.Value
        ActiveCell.Offset(0, 1).Select
        ActiveCell.Value = ActiveCell.Value + weekVal
        ActiveCell.Offset(0, -1).Select
    End If
Next
End Sub

宏之前

IMG1

宏之后

IMG2

标签: vbaexcel

解决方案


试试这个:

For Each cell In Range("K2:K500")
    'Adds the adjacent cell in column J to the current cell value
    cell.Value = cell + cell.Offset(, -1)
    'Clears the weekly values form column J
    cell.Offset(, -1).Clear
    'Clear 0s in column K
    If cell.Value = 0 Then cell.Clear
Next

推荐阅读