可以用VBA实现,具体代码如下(实现步骤即效果见附件中动态图)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Static rng_add
If Target.Count = 1 Then
If rng_add = "" Then
If Target.Value = 1 Then
Target.Value = 111111
rng_add = Target.Address
End If
Else
If Target.Value = 1 Then
If Range(rng_add).Value = 111111 Then
Range(rng_add).Value = 1
Target.Value = 111111
rng_add = Target.Address
Else
Target.Value = 111111
rng_add = Target.Address
End If
Else
If Range(rng_add).Value = 111111 Then
Range(rng_add).Value = 1
rng_add = Target.Address
Else
rng_add = Target.Address
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
按Alt+F11将以上代码复制到相应的表中即可,例如你要在sheet1中实现就将代码复制到sheet1中
按Alt+F11放入这段代码试试(用Target.column=1锁定在A列,如果想是B列则改为2,类推。另外水平有限,点A列是1的则变为111111,需要点不等于1的单元格才能变回1——不限列)
Private Sub Worksheet_selectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Value = 1 Then
Target.Value = 111111
Else
Cells.Replace What:="111111", Replacement:="1"
End If
End Sub
选中区域,右击,设置单元格格式,自定义:[=111111]"1";0
弄了半天,我跑题了。