我意识到我可能会在这里陷入困境,但值得一试。
我正在尝试在 excel 中创建一组加减号按钮,并根据先前选择的标准将其应用于单独工作表上的不同单元格。
我已经到处找了,一无所获。
这是我的例子...
我有一个人员配备模型,我想预测当我增加或减少员工时会发生什么。我将员工分为两种类型,销售和非销售。每种类型都有不同的标题。
我计划将我的高级销售助理人数减少 2 个 FTE,并将我的销售助理 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
我知道这段代码不会像我要求的那样考虑多个实例,但它甚至没有在测试中与一个实例一起工作。请让我知道这是否可能!提前致谢!
最佳答案
从代码中最简单和最小的部分开始,并尝试使其工作。
例如。像这个:
Sub Plus()
Range("L10").Value = Range("L10").Value + 1
End Sub
它应该可以工作,增加
L10
的值与 1。然后,考虑
If
功能。可能最后有一些空间或其他东西。因此,尝试一个简单的 if 是这样的:Sub Plus()
If Trim(Range("A1")) = "s" Then
Range("L10").Value = Range("L10").Value + 1
End If
End Sub
Trim()
会从检查字符串的左侧和右侧去除空格,并将内部空格减少到不超过 1。作为进一步检查,使用 LCase()
可能是更好的解决方案因为“销售助理”与“销售助理”是不同的字符串,并且会发生错误:Sub Plus()
If LCase(Trim(Range("A1"))) = "sales associate" Then
Range("L10").Value = Range("L10").Value + 1
End If
End Sub
最后,如果代码在一个模块中,那么 ActiveSheet 也应该被引用。看看
.Range()
之前的点:Sub Plus()
With Worksheets("SomeSheet")
If LCase(Trim(.Range("A1"))) = "sales associate" Then
.Range("L10").Value = .Range("L10").Value + 1
End If
End With
End Sub
关于excel - 使用 IF THEN 语句使用 VBA 创建加号和减号按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464739/