excel条件格式如何写公式 if语句;

我想用条件格式实现这么一个功能:当在单元A1输入一个数,如果输入的数等于B1,即A1=B1,则A1的数值自动变为0;
通过vbs可以实现吗?

IF(logical_test,value_if_true,value_if_false)

if函数 Logical_test    表示条件,条件符合就把value_if_true值赋给单元格,不符合就把value_if_false值赋给单元格。

你的条件是A1=B1,你要赋值的单元格也是A1,所以会报错的。


如果要实现,只能单独把条件区域输入一列,如第三列 A1单元格=if(C1=B1,0,C1)

用VBA也会有循环引用问题。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-28

自动变成0不能通过条件格式达到,只能是表面上的隐藏,比如把字变成白色,这样就看不到了。

设置方法如下:


公式输入 =$A1=$B1 ,格式选 字体为白色


第2个回答  2013-01-28
用条件格式无法实现的,格式是无法改变当前单元格的值的。
应该可以使用VBA来实现。用条件公式也不行的。

VBA的方法如下(Excel 2003):
1)设置安全级别:菜单 ->工具->宏->安全性,将安全性的级别设置为中级。
2)菜单 ->工具->宏->Visual Basic编缉器,打开进行编辑:
在窗口左侧的VBAProject..点击右键,在弹的菜单中选择“插入”->“模块”,然后在右侧中输入以下内容。
Sub a()
If Worksheets("Sheet1").Evaluate("B1") = Worksheets("Sheet1").Evaluate("A1") Then

Worksheets("Sheet1").Evaluate("A1") = "0"

End If
End Sub
然后再双击左侧的Sheet1,再在右侧中填入以下的内容:
Private Sub Worksheet_Change(ByVal Target As Range)
Call a
End Sub

好了,以上的操作就行了,保存退出,重开这个档案,这时注意要启用“宏”本回答被提问者采纳
第3个回答  2013-01-28
你这个是无法实现的,
因为假设B1的内容是0,
在A1中输入0,假如你真有这个功能了,那么这个功能会无限循环地运行下去了。

但是如果你想把结果(即A1自动变为0)放到除A1、B1以外的地方还是可以的
如放到C1中,刚在C1中输入:=IF(A1=B1,0,"")
第4个回答  2013-01-28
这是不可能的啊,违反了EXCEL的规则,原因有下:
1、A1要输数,又要自已会变(自己会变只有用公式)是不可能的。这情况就等同于叫你吃饭,但又要不给你吃饭。每一个格里只可能是常量或是变量,不可能又是常量又是变量

2、EXCEL公式的运算强调一种原则,不可自己调用自己,否则就是死循环啦
相似回答