ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 如何实现逐行递增三角形数据区域的复制?

如何实现逐行递增三角形数据区域的复制?

作者:绿色风 分类: 时间:2022-08-18 浏览:153
楼主
omnw
Q:如何实现逐行递增三角形数据区域的复制?
A:将下图中逐行增加两列的三角形(蓝色)区域复制到另一个工作表中,可以使用以下两种方法。

 
一是VBA法:
  1. Sub 复制数据()
  2.     Dim i As Long, j As Long, rng As Range
  3.     With Worksheets("Sheet2")
  4.         For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row    '遍历表中所有的行
  5.             If i = 1 Then
  6.                 Range("A1").Copy .Range("A1")    '复制第一行数据
  7.             Else
  8.                 Range(Cells(i, 1), Cells(i, (i - 1) * 2 + 1)).Copy .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
  9.                 '从第二行以每行增加两列的规则复制数据。
  10.             End If
  11.         Next i
  12.     End With
  13. End Sub

原理是:逐行遍历待复制工作表中的数据,然后按照第行增加两列数据的规则,将待复制工作表中当前行的数据区域复制到目标工作表中。
二是公式法:
在被复制工作表的A1单元格中输入如下公式,然后向右向下方复制此公式,即可实现需要的效果。
  1. =IF(COLUMN()<=(ROW()-1)*2+1,OFFSET(Sheet1!$A$1,ROW()-1,COLUMN()-1),"")

此公式的原理是:判断目标工作表中当前单元格是否符合复制规则的条件(每行增加两列),来引用被复制工作表中的单元格数据。
如何选中一个三角区域中的数据,把它复制到别的地方?.zip
2楼
纵鹤擒龙水中月
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap