循环遍历单元格并根据条件

时间:2017-08-24 21:44:12

标签: excel vba excel-vba loops range

我想循环遍历一系列细胞并提取特定信息。我正在尝试复制工作表("中的列D的下一个空单元格中的单元格(范围)中的单元格(范围)的cell.offset(0,-2)的粘贴(" 1")如果单元格的值与变量r.Value相同(变量是一个每次都改变的输入值,所以它必须保留为变量)。因此,因为我有单元格(范围),所以你可以理解它对于工作表的G列中的所有单元格的循环(" Tracker")。它到目前为止工作,但它唯一的作用是获取第一个单元格偏移并将其粘贴到目标表单的单元格d1中,覆盖我的标题。我希望它从单元格D2(第一个空单元格)粘贴它,并为遵守if条件的所有单元格执行此操作。有任何想法吗?代码在下面提供..

下面的代码是经过修改的代码!

日期的问题如上所示..我希望它出现在单元格内部,而不是在页面顶部.. enter image description here

Dim v As Range
    Set v = Sheets("1").Cells(Worksheets("1").Rows.Count, "D").End(xlUp)
    With Sheets("Tracker")
    For Each cell In .Range(.Cells(2, "G"), .Cells(.Rows.Count, "G").End(xlUp))
    If cell.Value = r.Value Then
    Set v = v.Offset(1, 0)
    v = cell.Offset(0, -2).Value
    End If
    Next cell
    End With

1 个答案:

答案 0 :(得分:2)

避免选择;明确定义父工作表;从下往上看,找到最后一个人口稠密的细胞;用起点和终点定义你的范围。

Dim v As Range
Set v = WORKSheets("1").Cells(WORKSheets("1").Rows.Count, "D").End(xlUp)
with WORKSheets("Tracker")
    For Each cell In .Range(.cells(2, "G"), .cells(.rows.count, "G").End(xlUp))
        If Int(cell.Value2) = Int(r.Value2) Then
            Set v = v.Offset(1, 0)
            v = cell.Offset(0, -1).value
        end if
    Next cell
end with