Excel VBA,如何向多个单元格添加值?

Excel VBA,如何向多个单元格添加值?

我想通过点击按钮来理论上增加每天运行时间并增加多台机器的日期。我得到的结果是无效的,看起来像这样,并且只增加了一台机器的值;

Sub Knapp10_Klicka()

Worksheets(1).Range("C2").Value = Worksheets(1).Range("C2").Value + 24
Worksheets(1).Range("E2").Value = Worksheets(1).Range("E2").Value + 1

End Sub

其中 C 列是运行时间,E 列是测量日期。

因此,如果我单击按钮,它会将 24 个运行小时和 1 天添加到其中一个单元,但我希望它将其添加到具有值的单元格的整个 C 和 E 列,以防我将另一台机器添加到列表中。有没有办法循环此命令?

答案1

考虑:

Sub dural()
    Dim rng As Range, r As Range

    Set rng = Range("C:C").Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
    For Each r In rng
        r.Value = r.Value + 24
    Next r

    Set rng = Range("E:E").Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
    For Each r In rng
        r.Value = r.Value + 1
    Next r

End Sub

它会自动检测操作的极限。

答案2

你可以试试这个

Sub WalkThePlank()

Dim startRow As Integer
startRow = 1         ' ENSURE THIS BE THE FIRST ROW OF YE DATA

Dim r As Range
Set r = Range("C1:C500")    'ENTER THE RANGE WHERE YOUR TREASURE LIES

For Each cell In r

    If (Range("C" & startRow).Value <> "") Then
        Range("C" & startRow).Value = Range("C" & startRow).Value + 24 ' Gold cap'ain
    End If

    If (Range("E" & startRow).Value <> "") Then
        Range("E" & startRow).Value = Range("E" & startRow).Value + 1   ' aaahh, doubloons
    End If
    startRow = startRow + 1

Next

End Sub

请记住,没有撤消功能,所以我建议您先备份该文件!

在 VBa 执行之前:

在此处输入图片描述

VBa 执行后:

在此处输入图片描述

相关内容