VBA:如何使用IF条件填充一列

时间:2017-10-18 09:01:41

标签: excel vba excel-vba if-statement populate

所以这就是我的问题。我有3个带标题的列。对于这个例子,让我们说第一列是普通的文本字符串。第二个是可选字段,它是空的或填充的。第三列是要使用以下规则填充的列:如果第二列不为空,则第一列的前2个字母应自动填充到第3列。见下图。

Example table

使用功能我只需要输入= IF(B2<>"&#34 ;; LEFT(A2; 2);"") -formula to 3rd column中的所有细胞。但有人能告诉我如何在VBA中做同样的事情? (在这种情况下,我没有选择使用该功能)。

编辑:谢谢你的所有答案:)

4 个答案:

答案 0 :(得分:1)

Sub Macro1()
    ActiveCell.FormulaR1C1 = "=IF(R[5]C[11]<>"""",LEFT(R[5]C,2),"""")"

    'CHANGE C1:C38 TO THE RANGE OF YOUR THIRD COLUMN
    Selection.AutoFill Destination:=Range("C1:C38"), Type:=xlFillDefault

End Sub

只需调整C1:C38以适合您的第三列范围

答案 1 :(得分:1)

这应该这样做,

Sub test()
  Sheets("Sheet1").Range("C1:C10").Formula = "=IF(C1 <> """", LEFT(C1,2), """")"
End Sub

答案 2 :(得分:1)

考虑到您展示的数据,请尝试一下......

{{1}}

上面的代码假设数据位于A列和B列,您需要根据N列将公式放在C列中,从Row2开始。

答案 3 :(得分:0)

Public Function myThirdColumn(myFirstColumn, mySecondColumn)
    If mySecondColumn <> "" Then
        myThirdColumn = Left(myFirstColumn, 2)
    Else
        myThirdColumn = ""
    End If
End Function