
通过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也会有循环引用问题。
自轮州运动变成0不能腊梁通过条件格式达到,只能是表面上的隐藏,比如把字变成白色,这样就看不到了。
设置方法如下:
公式输入 =$A1=$B1 ,格式选 字体为白迹搭色
用渗世条件格式无法实现的,格式是无法改变当前单元格的值的。
应该可以使用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
好了,以上的操作就行了,保存退出,重开这个档案,这时注意要启用“宏”
你胡携这个是无法实现的,
因为假设B1的内容是0,
在A1中输入0,假如你真有这个功能了,那么这个功能会无限循环地运行下去了。
但是如果你想把拿局结果(即A1自动变为0)放到除裤敏伏A1、B1以外的地方还是可以的
如放到C1中,刚在C1中输入:=IF(A1=B1,0,"")
这是不可能的啊,违反了EXCEL的规则,原因有租虚下:
1、A1要输数,又要自已会变(自己会变只有用公式)是不可能的。这情况就等同于叫你吃饭,但又要不给你吃饭。每一个格里只可能是常量或是变量,不可能弊答燃又是常量又是变量
2、举指EXCEL公式的运算强调一种原则,不可自己调用自己,否则就是死循环啦