excel - 使用 IF THEN 语句使用 VBA 创建加号和减号按钮
问题描述
我意识到我可能会在这里陷入困境,但值得一试。
我正在尝试在 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
推荐阅读
- android - Kotlin 中的数据绑定 + 房间。如何在 Kotlin 中绑定数据类?
- java - 无法使用 LibVLC 在 android 应用上加载 m3u 播放列表
- php - 如何修复变得不可读的 php 代码?
- mysql - 将 INNER JOIN 添加到我的 MySQL 查询中,以便我可以使用 DISTINCT
- flutter - 如何设置 Flutter Text 行距?
- reactjs - 你不应该在外面使用
使用 react-admin 创建教程应用程序时出错 - c# - 使用 Gridcolumn 单元格模板时保持默认网格单元格样式
- javascript - 用javascript写一个随机的
- javascript - JS 自定义元素获取内部 HTML
- gdal - 如何安装gdal1.10.0并解决json_object错误