查找数据单元格值,在列中向上移动一个单元格,在列中查找下一个数据单元格并获取下一个值

时间:2013-01-15 11:46:08

标签: excel vba

使用下面的代码,我正在尝试执行以下操作:

  • 查找与第一个IF语句匹配的文件
  • 在wbkOut中,转到第二列并找到第一个包含数据的单元格(底部,向上)并同时指定一个值,以便我们稍后可以引用它作为启动do循环的位置
  • 在wbkVer中,找到第一个包含数据的单元格,向下偏移1个单元格,从wbkout仅调整1个单元格的数据
  • 然后将wbkOut单元格的值添加到wbkVer单元格
  • 以上所有作品
  • 什么行不通的是下一篇
  • 如果脚本已经运行,那么将单元格偏移为一个..并且还将wbkOut单元格偏移一个单元格,然后开始寻找带有数据的下一个单元格......
  • 直到tenln不再有值

我无法让循​​环正常工作,建议?谢谢!

编辑:我可以获得前2个值,然后循环无限期地运行而没有找到任何其他值。

Dim strOutputFile As Variant
Dim wbkOut As Workbook
Dim tenln As Range
Dim tenlnPaste As Range
Dim hasRun As Boolean
Dim wbkVer As Workbook

    If strOutputFile(u) Like "*Lines.csv" Then
        With wbkOut.Worksheets(1)
        Set tenln = wbkOut.Worksheets(1).Cells(Rows.Count, 2).End(xlUp)
        Set tenlnPaste = wbkVer.Worksheets("TLines").Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(tenln.Rows.Count, 1)
            tenlnPaste.Value = tenln.Value
        hasRun = True
        Do
            If hasRun = True Then
            With wbkOut.Worksheets(1)
                tenlnPaste.Offset(1, 0).Value = tenln.Offset(-1, 0).End(xlUp).Value
            End With
            End If
        Loop Until tenln.value = ""
        End With
    End If

1 个答案:

答案 0 :(得分:0)

你所写的do循环的问题在于你没有修改tenln所以你在开头设置的任何值都将保持不变,而tenln = ""将始终为false

如果我正确阅读了tenln一个范围对象,那么你可以使用for循环。

For each c in tenln.cells

  'your code here
  If c.value = "" then exit for
Next