2015-07-13 74 views
-3

“如果然后在VBA语句”我正在写一个程序,如果一个变量达到一定的值,将一个数字放入Excel中的单元格。我知道如何声明变量,但我不知道如何告诉excel写入x如果A1 = 34。由于“如果然后语句在VBA填充单元格编号为”

+0

怎么样只是这个功能单元格中的Microsoft支持:= IF(A1 = 34, “X”, “”) – David

+0

感谢大卫,可以工作。我不知道我有这个选择。 – irvino81

回答

0

目前尚不清楚你想要做的事情,但是让我们假设你想要写您的变量x的当前值,到单元格B2 ......如果单元格A1是34

在上述情况下,你应该这样做:

If [a1] = 34 then [b2] = x 
0

将监听器添加到您的工作表以捕获一个范围。如果您只是在观看特定的列/行,或者您可以添加如下所示的范围,则可以设置范围[A1]。

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim KeyCells As Range 
    Set KeyCells = Range("A:A") 

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _ 
      Is Nothing Then 

     If Target.Value = "34" Then 
      Cells(Target.Row, 2) = "X" 
     Else 
      Cells(Target.Row, 2) = "" 
     End If 
    End If 
End Sub 

如果您想要变量x而不是文字x,请将“x”更改为。

如果您的目标是将单元格的值更改为“X”(文字X),并且您没有持续运行宏或每个单元格更改,则可以在每个单元格中使用以下函数(或类似函数)你有条件的单元格。

查看此主题https://support.microsoft.com/en-us/kb/213612

+0

感谢Brian,我想要的代码总是在监听数字数据流。当流中的特定值出现时,程序用值填充单元格。 – irvino81

+0

已将代码更新为侦听器 –