两个问题:1)我可以使用VBA将逻辑公式自动填充到单元格中,以及如何(我的代码有问题)和2)仅在输入数据时才能自动填充逻辑公式吗?
我要放入单元格而不是VBA时要使用的公式有效:
=IF(ISNUMBER(SEARCH("$",$A2)),"Scanner 2",IF(ISNUMBER(SEARCH("#",$A2)),"Scanner 1","Error"))
对于VBA,我还使用了相对坐标,但无效:
Range("C2").Value="=IF(ISNUMBER(SEARCH('$',RC[-2])),'Scanner 2', IF(ISNUMBER(SEARCH('#',RC[-2])),'Scanner 1','Error'))"
可能有帮助的图片:
答案 0 :(得分:1)
问题是使用单引号+您未将其添加为. Formula
的组合:
所以:
Range("C2").Formula = "=IF(ISNUMBER(SEARCH(""$"",$A2)),""Scanner 2"",IF(ISNUMBER(SEARCH(""#"",$A2)),""Scanner 1"",""Error""))"
应该工作
此外,我在您的代码中看到您正在使用.Select
,有很多方法可以避免使用它。检查this链接。
下面的示例将执行相同的操作:
With ThisWorkbook.Sheets("Sheet1")
.Range("C2:C100").Formula = "=IF(ISNUMBER(SEARCH(""$"",$A2)),""Scanner 2"",IF(ISNUMBER(SEARCH(""#"",$A2)),""Scanner 1"",""Error""))"
End With
您会注意到Excel会将公式自动调整为正确的单元格引用。