在另一列满足条件时更改特定列的值

时间:2015-09-22 01:33:35

标签: excel vba excel-vba

enter image description here

我需要有关上面截图的帮助。如果可能的话,我想要一个vba代码,它开始检查F行(单价)中的F2单元格,并将行H和I的相邻值更改为" 01/01/2010"如果单位价格的值为0并循环直到空单元格。提前谢谢。

col

试过这个,但价值没有改变

Range("F1").Select
ActiveSheet.Range("$A$1:$AI$9036").AutoFilter Field:=6, Criteria1:="0"
Range("H3").Select
ActiveCell.FormulaR1C1 = "1/1/2010"
Selection.AutoFill Destination:=Range("H3:I3"), Type:=xlFillCopy
Range("H3:I3").Select
Selection.FillDown
ActiveSheet.Range("$A$1:$AI$9036").AutoFilter Field:=6

2 个答案:

答案 0 :(得分:0)

For i = 1 To 100000
    With Sheets("Prices")
        If .Range("F" & i).Value = "0" Then _
        .Range("H" & i).Value = "01/01/2010"
    End With
Next i

这个工作

答案 1 :(得分:0)

这个在不到1秒的时间内工作,有100,000行:

Option Explicit

Public Sub updateDates()

    With ThisWorkbook.ActiveSheet.UsedRange
        If ActiveSheet.AutoFilter Is Nothing Then .AutoFilter
        .AutoFilter Field:=6, Criteria1:="0"
        .Columns(8).Offset(1).Resize(.Rows.Count - 1) = "1/1/2010"
        .AutoFilter
    End With

End Sub