使用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
我已故的盛大老师教会了我一句古老的谚语; *当你使它变得复杂时,不要简单*:P –
@ A.S.H - 我很惊讶这句谚语被简化了! ;) – YowE3K