【问题标题】:VBA: How to populate one column with IF conditionVBA:如何用 IF 条件填充一列
【发布时间】:2017-10-18 17:31:14
【问题描述】:

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

Example table

对于函数,我所要做的就是将 =IF(B2 ""; LEFT(A2;2); "") -公式放入第 3 列中的所有单元格。但是有人可以告诉我如何在 VBA 中做同样的事情吗? (在这种情况下我别无选择使用该功能)。

编辑:感谢您的所有回答:)

【问题讨论】:

  • 建议的解决方案之一对您有用吗?

标签: vba excel if-statement populate


【解决方案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 以适合您的第三列范围

【讨论】:

    【解决方案2】:

    应该这样做,

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

    【讨论】:

      【解决方案3】:

      考虑到您显示的数据,试试这个...

      Sub InsertFormula()
      Dim lr As Long
      lr = Cells(Rows.Count, 1).End(xlUp).Row
      Range("C2:C" & lr).Formula = "=IF(N2 <> """", LEFT(A2,2), """")"
      End Sub
      

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

      【讨论】:

        【解决方案4】:
        Public Function myThirdColumn(myFirstColumn, mySecondColumn)
            If mySecondColumn <> "" Then
                myThirdColumn = Left(myFirstColumn, 2)
            Else
                myThirdColumn = ""
            End If
        End Function
        

        【讨论】:

          猜你喜欢
          • 2021-11-15
          • 1970-01-01
          • 2021-06-05
          • 2021-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多