Excel VBA中的IF-Then-Else循环

时间:2014-05-30 18:08:15

标签: excel vba excel-vba

美好的一天,

我正在尝试编写一个宏,如果代理的名称和日期匹配,它将从工作表auxdata的C列中提取信息。问题在于报告的编制方式可能会有一天的不匹配(即统一页面上的记录,如5/1/2014 | x | AGENT X实际上可能对应于2014年5月2日的记录在auxdata表上)。我有以下代码:

Sub testloop()
Dim unified As Worksheet
Dim auxdata As Worksheet
Set unified = ThisWorkbook.Sheets("unified")
Set auxdata = ThisWorkbook.Sheets("auxdata")

unified.Activate
unified.Range("a2").Select
Do While ActiveCell.Value <> Empty
    If ActiveCell.Value = "auxdata[Date]" Then
         ActiveCell.Offset(0, 3).FormulaR1C1 = _
            "=INDEX(auxdata[Staffed Time], MATCH([@agent], auxdata[Agent], 0))"
    Else
        ActiveCell.Offset(0, 3).Value = "false"
        ActiveCell.Offset(1, 0).Select
    End If
Loop
End Sub

此循环仅转到Else语句。 Activecell.value =统一工作表中的日期

我需要关于If-then语句的帮助以及如何在else statemnet中的auxdata [Date]中添加1天

1 个答案:

答案 0 :(得分:1)

您已在以下行中键入字符串文字:

If ActiveCell.Value = "auxdata[Date]" Then

这是检查字符串“auxdata [Date]”而不是您要表示的日期。您希望它与实际日期匹配。如果数据位于一个固定单元格中,则可以使用以下内容:

If ActiveCell.Value = auxData.Range("A2").Value Then

希望这有帮助!