2014-11-04 130 views
-2

enter image description here如何在EXCEL中创建虚拟值并替换原始数据

我有类似上面的数据。我想编写一个vba代码来对从B2到J11的单元格进行逻辑测试。

如有B2至J11> 0正面的,那么原来的值将成为1, 否则变成0

如果你能做到这一点只需在Excel中,也让我知道。我尝试了IF函数,它只能用于一个单元格。

回答

1

您无法编写一个公式来更改单元格。这将需要VBA。

这是我的第一VBA的帖子,所以我愿意从专家的任何指点:

Sub Replace() 
    For Each c In Selection 
    If c.Value > 0 Then 
     c.Value = 1 
    ElseIf c.Value < 0 Then 
     c.Value = 0 
    End If 
    Next 
End Sub 

您还可以使用搜索更改为0和1 /替换。

突出显示的数据,那么:

  • 查找/替换-*0
  • 搜索/替换*.*对于1
+0

既然你只有2个可能性的代码,你可以简单地使用'Else'没有条件。另外,搜索'*。*'也会包含负值,因为'*'也匹配'-'。除此之外:非常优雅。 – 2014-11-04 21:54:30

+0

谢谢@ jbarker2160!我考虑不包括ElseIf,但这会将空白单元格更改为0.(也许有解决方法?)另外,如果搜索/替换按顺序完成,则在搜索/替换时不会有负数'*。*'。 – 2014-11-04 22:00:42