Excel VBA循环行直到空单元格

我有一个连续的纯文本的Excel文档。 A1:A5包含文本,然后向下几行,另外还有几行文本。 之间的单元格是空的。 我已经设置了Do Until循环,它应该用文本复制单元格,然后在空单元格出现时停止。 我的循环计数和复制136个单元格,包括5个文本。 所以我的问题是为什么? 底线: 你好在136行结束,然后有空白单元格的巨大差距,直到下一个文本区域。 这131个白色单元格是否包含隐藏的格式? 我已经尝试过“清除格式”和“全部清除”代码片段:

 Sub CopyTags_Click() Dim assets As Workbook, test As Workbook Dim x As Integer, y As Integer Set assets = Workbooks.Open("file-path.xlsx") Set test = Workbooks.Open("File-path.xlsx") x = 1 y = 1 Do Until assets.Worksheets(1).Range("A" & x) = "" test.Worksheets(1).Range("A" & y) = assets.Worksheets(1).Range("A" & x) x = x + 1 y = y + 1 Loop test.Worksheets(1).Range("A" & x).Value = "Hello" End Sub 

我也尝试使用vbNullString而不是“”

使用一个For Next语句终止在列A中最后使用的单元格。只有在find并传输了一个值并让For … Next增量x时才增加y

 Sub CopyTags_Click() Dim assets As Workbook, test As Workbook Dim x As Long, y As Long Set assets = Workbooks.Open("file-path.xlsx") Set test = Workbooks.Open("File-path.xlsx") x = 1 y = 1 with assets.Worksheets(1) for x = 1 to .cells(rows.count, 1).end(xlup).row if cbool(len(.Range("A" & x).value2)) then test.Worksheets(1).Range("A" & y) = assets.Worksheets(1).Range("A" & x) y = y + 1 end if next x test.Worksheets(1).Range("A" & y).Value = "Hello" end with End Sub