繁体   English   中英

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

[英]Find data cell value, move up one cell in column, find next data cell within a column and get next value

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

  • 查找与第一个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

do循环的问题在于您没有修改tenln因此您在开始时设置的任何值都将保持不变,并且tenln = ""始终为false

如果我正确阅读了tenln sa范围对象,那么可以改用for循环。

For each c in tenln.cells

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM