Vba 在Excel宏中对28118行重复命令
我一直在处理越来越大的电子表格,最近开始试验宏。不幸的是,我仍然是一个初学者,不知道如何循环或简单地重复2556次excel中非常简单的任务 我有2556(15x2)个数据表,分布在电子表格中的28118行上,我想将特定单元格(位于每个表之间的一行)剪切并粘贴到表本身中(2556次)。我有以下宏:Vba 在Excel宏中对28118行重复命令,vba,excel,Vba,Excel,我一直在处理越来越大的电子表格,最近开始试验宏。不幸的是,我仍然是一个初学者,不知道如何循环或简单地重复2556次excel中非常简单的任务 我有2556(15x2)个数据表,分布在电子表格中的28118行上,我想将特定单元格(位于每个表之间的一行)剪切并粘贴到表本身中(2556次)。我有以下宏: Sub stat_shr() ' ' Shr_Ma Macro ' H6 stats Sorting xls ' ' Range("B7").Select Selection.Cut
Sub stat_shr()
'
' Shr_Ma Macro
' H6 stats Sorting xls
'
'
Range("B7").Select
Selection.Cut
Range("A13").Select
ActiveSheet.Paste
Range("B18").Select
Selection.Cut
Range("A24").Select
ActiveSheet.Paste
Range("B29").Select
Selection.Cut
Range("A35").Select
ActiveSheet.Paste
End Sub
我想在28118行的范围内重复此任务,而不是上面显示的内容。更准确地说,我需要先移动单元格B7->A13、B18->A24、B29->A35等等,重复这个过程直到移动单元格B28013->A28019。A列和B列中的相关单元格由10行(非空)分隔。有人能提供一些帮助吗?你需要一个。。。下一个循环。首先,确定剪切和粘贴操作需要执行多少次。假设它是100倍,那么:
For i = 0 to 99
cells(7+i*11,2).cut
activesheet.paste destination:=cells(13+i*11,1)
Next
请注意,您不需要“选择”单元格或区域来使用它们。事实上,几乎不需要使用“选择”-这正是宏记录器的工作方式。使用带步长的for循环。它将按您输入的任何数字增加变量:
for row = 7 to 28013 step 11
Range("B" & row).cut
ActiveSheet.Paste Destination:=Range("A" & row + 6)
next row
您可能需要调整此处的数字,但这基本上就是您要寻找的。所以您要移动每个第11个单元格?i、 e.B7->A13,B18->A24,…?不确定切割这些细胞的逻辑是什么。起初我以为它在下面6行,左边1列,但A24->B29不匹配。@simoco,是的,每个第11个单元格向下6行,左边1列。@lowak这正是我想要做的,也许我的描述不是很清楚,我现在已经更正了。不是真的,你做得对,我只是找错了地方,误读了你的代码。我想ForteDevelop写了一个你需要的代码。