首页 文章

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

提问于
浏览
0

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

  • 查找与第一个IF语句匹配的文件

  • 在wbkOut中,转到第二列并找到包含数据的第一个单元格(底部,向上)并同时指定一个值,以便我们稍后可以引用它作为启动do循环的位置

  • 在wbkVer中,找到第一个包含数据的单元格,向下偏移1个单元格,仅从1个单元格调整wbkout的数据大小

  • 然后将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

    你所写的do循环的问题是你没有修改 tenln 所以你在开始时设置的值将保持不变并且 tenln = "" 将始终为false

    如果我正确读取了这个范围对象,那么你可以使用for循环 .

    For each c in tenln.cells
    
      'your code here
      If c.value = "" then exit for
    Next
    

相关问题