使用IF THEN语句使用VBA创建加号和减号按钮

时间:2019-04-01 23:02:46

标签: excel vba

我意识到我可能正在这里钻一个兔子洞,但是值得一试。

我正在尝试在excel中创建一组加减按钮,并根据先前选择的标准将其应用于单独工作表上的不同单元格。

我到处搜索,一无所获。

这是我的例子...

我有一个人员配备模型,我想预测在增加或减少员工时会发生什么。我将员工分为销售和非销售两种类型。每种类型中都有各种标题。

我计划将我的高级销售助理FTE减少2个,并将我的销售助理FTE减少1个。

我希望能够使用数据验证列表选择“高级销售助理”,然后使用减号按钮减少3。然后,我想切换我的数据验证列表以选择“销售助理”并使用相同的减法按钮可将计数减少1。

我试图使用Excel VBA If THEN语句,但它们似乎不起作用。我将在下面提供我认为可以使用的代码示例。

Sub Plus()

   If Range("A1")= "Sales Associate" Then
       Range("L10").Value = Range("L10").Value + 1        
   End If

End Sub

我知道这段代码不会像我所要求的那样考虑多个实例,但是在测试中甚至无法使用一个实例。请让我知道是否可行!预先感谢!

1 个答案:

答案 0 :(得分:2)

从代码的最简单和最小的部分开始,并尝试使其正常工作。 例如。像这样一个:

Sub Plus()
    Range("L10").Value = Range("L10").Value + 1
End Sub

它应该起作用,将L10的值增加1。 然后,考虑If函数。可能在末尾有一些空间。因此,请尝试以下简单方法:

Sub Plus()    
   If Trim(Range("A1")) = "s" Then
       Range("L10").Value = Range("L10").Value + 1
   End If    
End Sub

Trim()将在选中的字符串的左侧和右侧去除空格,并将内部空格减少到不超过1。作为进一步的检查,使用{{ 1}},因为“销售关联”与“销售关联”是不同的字符串,并且会发生错误:

LCase()

最后,如果代码在模块中,则还应引用ActiveSheet。看看Sub Plus() If LCase(Trim(Range("A1"))) = "sales associate" Then Range("L10").Value = Range("L10").Value + 1 End If End Sub 之前的点:

.Range()