使用基于多个变量的VBA在Excel 2013中填充列

时间:2016-06-14 19:31:30

标签: excel vba excel-vba

我有三列。 A列显示从2016年1月1日到年底的每个日期。 B列当前为空。 C列显示了手动输入的日期(可以并且确实经常更改(手动)。

我希望有一个Sub(通过一个按钮),当按下时,将使用“是”或“否”值填充B列,具体取决于A列的同一行中的值是否大于显示的值C栏。

例如,当A1(1/1/2016)小于C1(1/4/2016)时,B1应显示“否”。而A5(1/5/2016)大于C1并且应显示“是”。

    A            B            C
1/1/2016                  1/4/2016  
1/2/2016
1/3/2016
1/4/2016
1/5/2016
1/6/2016
     

应该成为

    A            B            C
1/1/2016        No        1/4/2016  
1/2/2016        No 
1/3/2016        No 
1/4/2016        No 
1/5/2016        Yes
1/6/2016        Yes

我是VBA的新手,并没有看到与此直接相关的任何问题,所以任何简单的VBA建议都会很有用。

3 个答案:

答案 0 :(得分:3)

通常情况下,不试图编写答案的问题是不合适的,但这应该是一个简单的问题,希望能给你足够的答案,这样你就可以在将来开始解决这些问题。尝试添加

'Col A = Col 1, Col B = Col 2, etc.
'Cells(row num, col num)
finalRow = Cells(1000000,1).end(xlup).row
for i = 1 to finalRow
    if cells(i,1) < cells(i,3) then
        cells(i,2) = "No"
    else
        cells(i,2) = "Yes"
    end if
next i

到您的VBA编辑器。

答案 1 :(得分:0)

您可能只想创建一个正常的单元格函数。输入B1

=IF(A1>C1,"Yes","No")

将该功能复制到B列中的所有单元格,结果为

答案 2 :(得分:0)

在B2中使用以下内容,

=CHOOSE((A2>INDEX(C:C, MATCH(1E+99,C$1:C2 )))+1, "No", "Yes")

根据需要填写。

enter image description here