Excel Visual Basic 2007添加值

Excel Visual Basic 2007添加值,excel,vba,excel-2007,Excel,Vba,Excel 2007,首先,我不是一个真正的智者。因此,我试图将两个值相加,并在第三个值中显示它们(这很容易),但我也希望它重复无限次(即,它对每一行都做相同的操作,比如说,我将结果放在I5中,我还希望,在它下面的每个I上(I6、I7、I8等等) 如果是: Private Sub Worksheet_Change() if IsNumeric(Range("B1").sort) And IsNumeric(Range("B2").sort) then Dim value1 As Single Dim value2

首先,我不是一个真正的智者。因此,我试图将两个值相加,并在第三个值中显示它们(这很容易),但我也希望它重复无限次(即,它对每一行都做相同的操作,比如说,我将结果放在I5中,我还希望,在它下面的每个I上(I6、I7、I8等等)

如果是:

Private Sub Worksheet_Change()

if IsNumeric(Range("B1").sort) And IsNumeric(Range("B2").sort) then
Dim value1 As Single
Dim value2 As Single 
range(I5).sort = value+1 + value2

End Sub

或者我认为我大错特错了?

您正在使用
范围
.Sort
属性,您应该在其中使用
.Value

有两种方法可以实现您希望实现的目标。第一种方法是遍历范围并向每个单元格添加相关值,如下所示:

Public Sub addCells()

Dim rng As Range, cell As Range

'Set the sheet name
With ThisWorkbook.Worksheets("Sheet_Name")

    'Set the range below:
    Set rng = .Range("I1:I10")

    'Loop through range and add cells together
    For Each cell In rng
        cell.Value = cell.Offset(0, 2) + cell.Offset(0, 1)
    Next cell

End Sub
如果要添加的值在列
A
B
中排序,另一种方法是:

Public Sub addCells()

Dim rng As Range, cell As Range

'Set the sheet name
With ThisWorkbook.Worksheets("Sheet1")

    'Add the first formula to the sheet
    .Range("C1").Value = "=SUM(A1+B1)"

    'Change the range below to the range to be filled
    .Range("C1").AutoFill Destination:=.Range("C1:C10")

End With

End Sub

问题是我不想添加一个范围,范围应该是无限的。这就是我遇到的问题。仍然感谢您的帮助。它不能是“无限的”,因为excel中的行/列数是有限制的。您的意思是希望它计算到最后使用的行吗?基本上。让我进一步解释,假设我想添加a+B a然后把结果放在C中,我也希望这样做的次数是无限和随机的(也就是说,每一行从一个住所复制代码,使代码本身“无限”)。我知道,我不擅长解释我自己。所以你想对工作表中的每一行都这样做吗?是的,大多数情况下。我猜同样的方法也可以用来制定规则(假设我希望负值在粉色单元格中,负数在绿色单元格中,负数在蓝色单元格中,负数在蓝色单元格中,负数在绿色单元格中,负数在蓝色单元格中,负数在蓝色单元格中,负数在蓝色单元格中,负数在蓝色单元格中,负数在蓝色单元格中)?