如果列值的值为yes,则在宏中查找列值的总和

时间:2013-12-29 23:30:18

标签: excel vba excel-vba excel-2007

我正在制作一个项目,如果选中它,我必须在sum中添加一个值。我有2个excel表单,其中一个包含值,另一个包含列,包含是否选中它。 我必须找到所有选定值的总和。 我一次为一列编写了它,但是当我更改该列中的值时,我想将它用于触发器的所有列。 特定列的代码如下

Dim A, B, As String, Aval, Bval, Ans As Integer
A = Worksheets("Select").Range("A2").Value
B = Worksheets("Select").Range("B2").Value
Aval = Worksheets("Data").Range("A2").Value
Bval = Worksheets("Data").Range("B2").Value

If A = "Yes" Then
    Aval = Aval
Else:
    Aval = 0
End If

If B = "Yes" Then
    Bval = Bval
Else:
    Bval = 0
End If

Ans = Aval + Bval 

Worksheets("Select").Range("D2").Value = Ans

excel表是那种 数据 一个B. 10 20

选择 A B Ans 是的,没有10 是的30

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全接受了您的问题。你的意思是你想要这样做“是” - 检查整个专栏?在那种情况下,我会循环遍历列中的行,即

For i = 1 to lastrow 
    If cells(i,1) = "Yes" Then
        Do something
    End If
Next i

这有帮助吗?

另外,我相信可以用一个简单的if-formula来做到这一点,即你检查Select.A1 = Yes,然后Data.A1将是什么。在另一个单元格中,您可以获取列/行的总和。

希望这有帮助!

答案 1 :(得分:0)

a)我不确定变量声明是否有效。请检查出来。我总是喜欢单独声明每种类型。 b)在Else

之后删除冒号“:”