簡體   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