在复制VBA时删除空白单元格和结构化数据

我目前正在一个项目中,我需要复制一个工作簿中的目标范围,并将其粘贴到另一个工作簿,省略所有的空白单元格(有很多)。

到目前为止,我已经设法将它们全部粘贴在一起,但是我没有设法适当地构build它。

For Each c In rngSourceRange.SpecialCells(xlCellTypeVisible) If Len(c) <> 0 Then rngDestination = c.Value Set rngDestination = rngDestination.Offset(0, 1) End If Next c Application.CutCopyMode = False 

格式应该是这样的。 前19个单元应该相邻排成一行,然后它应该向下移动回到第一列并列出接下来的19个条目,依此类推,直到我全部不在单元中复制。 现在我试图包括另一个for循环,但它产生了一个非常无用的结果。

  For Each c In rngSourceRange.SpecialCells(xlCellTypeVisible) If Len(c) <> 0 Then For lcol = 1 To 19 wkbCrntWorkBook.Sheets("Tabelle1").Cells(lrow, lcol).Value = c.Value lrow = lrow + 1 Next lcol End If Next c Application.CutCopyMode = False 

请帮我正确的构build这个数据集。 我可以显示我的代码的其余部分,如果这将有任何帮助。

在你的第一个代码中,在这个声明之后:

 Set rngDestination = rngDestination.Offset(0, 1) 

尝试添加以下语句:

  If rngDestination.Column > 19 Then _ Set rngDestination = rngDestination.EntireRow.Offset(1).Cells(1)