Vba 根据另一列填充特定列中的值的宏

Vba 根据另一列填充特定列中的值的宏,vba,excel,Vba,Excel,我想寻求帮助。我正在寻找一个宏来执行这样的操作: 我有一个名为Comment的列和五个其他列,它们应该根据Comment列填充。如果在注释列中有一条消息“duplicate”,我想在名为duplicate 1的列中标记它,如果不是,它应该是0。同样,在这种情况下,两个值可以表示要填充的1–即左侧-找到替换项,左侧-未替换项。对于这两个值,应在左列中填充1,对于其他值,应填充0 我修改了用于Vlookup的宏,并且我能够得到if函数,但仅用于1个特定的逻辑测试(在本例中为“找到了左替换”)。我需要

我想寻求帮助。我正在寻找一个宏来执行这样的操作:

我有一个名为Comment的列和五个其他列,它们应该根据Comment列填充。如果在注释列中有一条消息“duplicate”,我想在名为duplicate 1的列中标记它,如果不是,它应该是0。同样,在这种情况下,两个值可以表示要填充的1–即左侧-找到替换项,左侧-未替换项。对于这两个值,应在左列中填充1,对于其他值,应填充0

我修改了用于Vlookup的宏,并且我能够得到if函数,但仅用于1个特定的逻辑测试(在本例中为“找到了左替换”)。我需要有多个逻辑测试。因此,在这种情况下,我希望找到左替换,并将左替换标记为1,其余标记为0

Sub Testing_if_function()
Dim FormulaCol As Long
Dim LookupCol As Long
Dim TotalRows As Long
Dim TotalCols As Long
Dim i As Long

Sheets("Data").Select
TotalRows = ActiveSheet.UsedRange.Rows.Count
TotalCols = ActiveSheet.UsedRange.Columns.Count

For i = 1 To TotalCols
    If Cells(1, i).Value = "Test" Then FormulaCol = i
    If Cells(1, i).Value = "Comment" Then LookupCol = i
Next

ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""Left - Replacement Found"",1,0)"
Cells(2, FormulaCol).AutoFill Destination:=Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol))
With Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol))
    .Value = .Value
End With

End Sub

我找到了这个问题的解决方案。因此,如果有人需要类似的宏,下面是代码:

Sub Testing_if_function()
Dim FormulaCol As Long
Dim LookupCol As Long
Dim TotalRows As Long
Dim TotalCols As Long
Dim i As Long

Sheets("Data").Select
TotalRows = ActiveSheet.UsedRange.Rows.Count
TotalCols = ActiveSheet.UsedRange.Columns.Count

For i = 1 To TotalCols
    If Cells(1, i).Value = "Test" Then FormulaCol = i
    If Cells(1, i).Value = "Comment" Then LookupCol = i
Next

ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""Left - Replacement Found"", 1, IF(RC[-2]=""Left - No Replacement"", 1, 0 ))"
Cells(2, FormulaCol).AutoFill Destination:=Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol))
With Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol))
    .Value = .Value
End With

End Sub

听起来这是一个学习VBA的好机会。或者,这都可以通过工作表公式来完成。如果您不熟悉工作表公式,并且对VBA没有/有限知识的人来说,这将是一个更好的做法。对于这些事情,我是手动完成的,但每天我都会收到两份电子表格数据清理的所有步骤都需要花费很长时间。我让我自己或在stack overflow的帮助下,让人们了解我需要的几乎所有东西,以完全自动化这个过程并集中精力学习VBA。我知道我应该从IF函数开始,但在宏中设置它似乎对我来说太复杂了。我几乎可以达到我想要的。唯一的事情是缺少的是具有2个值的多重逻辑测试。有人知道我应该如何修改代码以使其成为可能吗?