这是一个困难的 Visual Basic 问题,所以我不确定这个论坛中是否有人能提供帮助。但值得一试。
我用 Visual Basic 编写了一个程序,用作 Excel 中的宏。
在宏中,我在 sheet1(最终)中获取数据并将值复制并粘贴到 sheet2(数据)中。我在 sheet1 中的数据范围有很多空白单元格,所以我想创建一个程序,它只会粘贴带有值的行(而不是只有空白单元格的行)。
我的程序现在在粘贴到 sheet2 之前修改了表 1 中的数据范围,我不希望这样……..我的格式也因此被搞砸了。相反,我希望 sheet1 中的数据保持完全相同,并且在粘贴操作中删除空白行进入 sheet2。
我在 sheet1 中的数据从 AL 列开始,然后到 CD 列。
保持行的完整性非常重要。我不希望在粘贴过程中删除空白单元格,而是希望在粘贴过程中删除范围中的空白行。因此,如果列 AL 和 CD 之间有一行甚至只有一个数据点,则该行作为一个整体必须保留在粘贴中。但是对于列 AL 和 CD 之间完全空白的任何行,需要在进入 sheet2 的粘贴操作中将其删除。
我现有的程序如下。任何帮助将不胜感激。
Dim ws As Worksheet
Set ws1 = Worksheets("FINAL")
Set ws2 = Worksheets("Data")
With ws1.UsedRange
lastcolumn = .Cells(1, 1).Column + .Columns.Count - 1
lastrow = .Cells(1, 1).Row + .Rows.Count - 1
End With
ws1.Range(Cells(1, 38), Cells(lastrow, lastcolumn)).AutoFilter field:=1, Criteria1:="<>"
ws1.Range(Cells(1, 38), Cells(lastrow, lastcolumn)).Copy
ws2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False