使用VBA复制垂直列并对角线粘贴

问题描述:

我有一列数据,我们称之为col A,并说有35行数据。如何循环遍历该列,然后将每个数据点粘贴到另一个表中,同时为循环的每个循环递增列和行。换句话说,我试图在第二张纸上对角地粘贴。有没有简单的方法来在VBA中执行这样的操作?使用VBA复制垂直列并对角线粘贴

不循环,有一些有趣的数组操作

Sub ColumnToDiagonal() 
    With Sheet2.Cells.Resize(35, 35) 
     .Formula = "=IF(Row()<>Column(), """", sheet1!$A1)" 
     .Value = .Value 
    End With 
End Sub 

与ASH舌头在脸颊挖;)

不要复杂,做一个循环:

Sub ColumnToDiagonal() 
    Dim r As Long 
    For r = 1 To 35 
     Worksheets("Sheet2").Cells(r, r).Value = Worksheets("Sheet1").Cells(r, "A").Value 
    Next 
End Sub 
+0

我已故的盛大老师教会了我一句古老的谚语; *当你使它变得复杂时,不要简单*:P –

+1

@ A.S.H - 我很惊讶这句谚语被简化了! ;) – YowE3K