如何不跳过vba中的空行或单元格?

有没有办法做每个循环的vba,循环范围,但包括空的单元格/行。

问题:当我在其他工作表的行上进行复制时,循环会自动跳过“A”列中空白的单元格,并完全跳过整行,因此我在该行中丢失了一些数据,因为只有A列是空白的。

例如。

For Each cell In wks.Range("A2", "A1000") cell.EntireRow.Copy Destination:=Worksheets("Master").Range("A65536").End(xlUp).Offset(1, 0) Next cell 

我相信问题在于使用你正在使用的End()方法中的偏移select。 当单元格为空时,扩展一个范围select就会停止。 试试像这样明确地指定你想要的范围行。

 ThisWorkbook.ActiveSheet.Range("E10:E20").Copy _ ThisWorkbook.ActiveSheet.Range("F10:F20") 

当然硬编码col和row不会适用于你的情况,你将要使用你的wksvariables而不是activesheet,但是只需要用正确的值连接来replace行和列的字母和数字。 可能更接近这个的东西:

 Dim fromCol as String, toCol as String, fromRow as String, toRow as String ' populate your 4 variables through your own logic here wks.Range(fromCol & fromRow ":" & fromCol & toRow).Copy _ wks.Range(toCol & fromRow & ":" & toCol & toRow) 

祝你好运!

这将会findMaster中最后一个使用的行,粘贴到下一行。 主人必须至less有一个单元格填充或将会出错

 Sub test() Dim cell As Range Dim wks As Worksheet Dim rNext As Range Dim wsMaster As Worksheet Set wsMaster = Worksheets("Master") Set wks = Sheet1 For Each cell In wks.Range("A2", "A1000") Set rNext = wsMaster.Cells(wsMaster.Cells.Find("*", _ wsMaster.Range("A1"), , , , xlPrevious).Row, 1).Offset(1, 0) cell.EntireRow.Copy Destination:=rNext Next cell End Sub 

它使用查找A1之前的下一个单元格的技术。 它查找“*”,它是任何事物的通配符,它​​查找以前的单元格,它应该是电子表格中的最后一个单元格。