使用数组粘贴忽略空白单元格

感谢在这个论坛上的一些人,我有这个代码工作,复制多个单元格从一个参考活动工作表到一个主工作表,而转置他们。 我唯一的问题是有一个空白单元格的范围,我希望函数忽略这些单元格。 我已经尝试使用skipblanks=truespecialpaste函数,但是没有帮助。 有什么build议么?

 Macro1() Dim master As Worksheet, source As Worksheet, copyCols() As Variant, pasteCols() As Variant, i As Integer Set master = Workbooks("Combined Spreadsheet.xlsx").Worksheets(1) Set source = ActiveSheet copyCols = Array("F", "H", "N", "R", "S") pasteCols = Array("B", "L", "V", "AF", "AP") For i = 0 To UBound(copyCols) source.Range(copyCols(i) & "4:" & copyCols(i) & 14).Copy master.Range(pasteCols(i) & master.Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=True Next i End Sub 

通过select具有types常量的特殊单元来select非空单元格,然后粘贴结果,这些结果只会经过所选单元格。

试试下面的代码的代码。

 copyCols = Array("D", "E") pasteCols = Array("H", "I") For i = 0 To UBound(copyCols) Range(copyCols(i) & "4:" & copyCols(i) & 14).SpecialCells(xlCellTypeConstants, 23).Copy Range(pasteCols(i) & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=True Next i