我尝试用谷歌搜索答案,但除了使用 VBA 之外没有找到任何答案。我是一个对编程一无所知的用户
我正在尝试制作一个 Excel 表来跟踪一个人的项目工作
A 列: 项目名
B 列:人员处理(可使用下拉列表或人员可输入其姓名)
C 列:项目状态(已完成、待审核、未完成)
我希望实现的是,当用户将他们的工作项目状态更改为完全的在C 列,他们的名字B 列将被自动删除
谢谢你的帮助
答案1
正如 所述Scott
,Excel 公式不会对其他单元格做任何事情。它们会读取这些单元格并“获取”其中的信息以供自己使用,但永远不会对它们做任何事情。永远不会。
Excel 不像编程语言那样,代码会主动去某个地方,至少会读取一些东西然后消失,但经常需要更改它找到的内容或根据它找到的内容更改其他内容。它就是做不到,也没有办法解决。
一旦您学会如何使用 VBA(编码,就像普通的编程语言一样),它就会很好地发挥作用。如果您已经了解其他语言,请记住 Excel 还允许使用其他几种语言编写宏,因此您可能已经知道如何做您想做的事情。而且 VBA 具有 OnChange 功能,可以在 C 列单元格更改时触发,评估更改,如果需要,转到 B 列单元格并清除其内容,因此它可以完全自动为您完成。
如果您不能(不了解 VBA 或者老板在公司电子表格中没有宏)或者不想使用 VBA,那么最接近 Excel 的是使用条件格式(“CF”)。
CF 可以监视 C 列单元格,如果其值变为“完成”,则可以将新格式应用于 B 列:在这种情况下,它可以将 B 列字体颜色更改为与单元格的背景颜色相匹配。通常这意味着将其更改为白色。这会导致列中的文本从视线中消失,但不会消失。它仍然存在,但单元格显示为空。
如果与实际为空状态明显不同的情况就足够了,那么你就有了自己的解决方案。如果它必须是真正为空的(例如,出于某种排序需要,或者由于名称并未真正消失,名称用于其他目的可能会被破坏),CF 就无能为力了。
但人们说“VBA”时并非只是在愚昧或说教。Excel 根本不能满足您的需要。