繁体   English   中英

Excel Macro带循环剪切和粘贴单元格

[英]Excel Macro cut and paste cells with loop

目前,我正在处理大量来自临床研究的数据。 为了在SAS中进行分析,我必须更改存储在excel表中的数据的排列方式。 这意味着如果我手动复制和粘贴数小时,那么我尝试编写一个宏。 我花了几个小时试图弄清楚代码,我想出了一个草稿,因为我在VBA中没有任何背景,所以它当然是行不通的,因此对语法没有更深入的了解。 虽然问题确实很简单。 这是我想做的(抱歉,只是一个链接...因为我还不能发布图片)

http://s7.directupload.net/images/140611/b96dhime.png

首先,红色箭头:从mmp1_v1列顶部的单元格中剪切该值,并将其粘贴到mmp1列的第一个单元格中。 然后是蓝色的:从mmp1_v2列顶部的单元格中剪切该值,并将其粘贴到mmp1列顶部的第二个单元格中。 下一个红色和蓝色箭头也是如此。 我在每一列中有194行,其中有97个值,有97个空值,因此该过程应在一个循环内完成97次。 所有这些共计29列。

我想出的代码-显然不起作用-看起来像这样:

Sub cut_paste()

Dim nr As Integer
For nr = 1 to 195

Range("J&nr&").Select
Selection.Cut
Range("I&nr&").Select
ActiveSheet.Paste
Range("K&nr&").Select
Selection.Cut

nr = nr + 1

Range("I&nr&").Select
ActiveSheet.Paste

Next nr

End Sub

我希望它像Java一样。 我知道……不是同一语言,但是我只是想定义一个名为“ nr”的计数变量,然后将其插入代表范围的字符串中。 但是我不理解错误消息,这绝对不是唯一的问题。 对缺少的专有名词感到抱歉...英语不是我的母语。 如果有人能尝试按照我的想象写出这样一个作品的例子,我会感到非常高兴。 如果您可以遵循我想要的功能。 然后,我仍然要做的是更改范围的名称。 由于还有29列必须以相同的方式处理。 但是我认为这比手动复制和粘贴所有内容要好...

在此先多谢!

您必须在vba中以不同方式处理字符串。 您还需要丢失nr = nr + 1,因为下一个将使它递增。 参见下面的代码:

Sub cut_paste()

Dim nr As Integer
For nr = 1 to 195

Range("J" & nr).Select
Selection.Cut
Range("I" & nr).Select
ActiveSheet.Paste
Range("K" & nr).Select
Selection.Cut

Range("I" & nr).Select
ActiveSheet.Paste

Next nr

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM