使用下面的代码我正在尝试执行以下操作:
-
查找与第一个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 回答
你所写的do循环的问题是你没有修改
tenln
所以你在开始时设置的值将保持不变并且tenln = ""
将始终为false如果我正确读取了这个范围对象,那么你可以使用for循环 .