2016-07-05 48 views
0

http://i.stack.imgur.com/93bt7.png使用VBA

嗨不同長度的複製粘貼範圍,

我試圖用我已經做了代碼工作,但我遇到了一些麻煩。

如果你看看上面的照片,在B3單元格中我有一個CUSIP。我想要做的是複製該CUSIP並將其粘貼到該CUSIP的每行信息中(因此A4行至A8)。然後,我想移到J3中的第二個CUSIP(CUSIPS全部位於第3行和第8列),然後將CUSIP粘貼到J4到J35行。

我想繼續做1000遍以上的證券,但問題在於行的長度不同。

我的代碼正在運行,直到我找到最後一段代碼作爲註釋。它的工作原理是靜態的。僅適用於從第一級移動到第二級安全失敗。我試圖想到一種動態的方式,讓我從CUSIP最後一次粘貼的單元格移動到第三行和相應的列(每次從最後一個粘貼的單元格開始,列將相距9)。

這就是:

Sub CUSIP_Copy_Paste() 

Dim LastRow As Long 
Dim LastCol As Long 
Dim c As Long 
Dim r As Long 

Range("B3").Select 

    LastCol = Cells(4, Columns.Count).End(xlToLeft).column 

For c = 2 To LastCol Step 8 

    LastRow = Cells(Rows.Count, c).End(xlUp).row 

     ActiveCell.Copy 

     Cells(4, ActiveCell.Offset(1, -1).column).PasteSpecial xlPasteValues 

For r = 5 To LastRow 

    Cells(r, ActiveCell.Offset(1, 0).column).PasteSpecial xlPasteValues 

Next r 

    ''''''ActiveCell.Offset(-5, 9).Select 

Next c 

End Sub 

謝謝!

回答

1

你的錯誤在於最終的抵消。也就是說,偏移量(3 - lastRow,9)代替-5,輸入一個變量,最好是行數末尾和始端之間的差值,即始終爲3.

也就是說,

你幾乎有朋友:)

+0

我明白了!謝謝! – markos

+0

我遇到了另一個問題,您可能可以提供幫助,我有三個單獨的宏,我想通過調用每個宏來合併爲一個宏。另外,我希望在運行之前每個節點之間都會有暫停(有我想完全刷新的BBRG數據)。但是,它似乎沒有工作。 – markos

+0

這是我的代碼: – markos