2013-01-21 70 views
-4

我有這個代碼,從宏記錄。我必須一次又一次地複製代碼 以完成此過程。使這個代碼更簡單

請幫我做一個循環,直到過程結束。

Sub Macro1() 

    Sheets("Sheet1").Select 
    Range("D2:E2").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Sheets("ALB1").Select 
    Range("C1").Select 
    ActiveSheet.Paste 
    Sheets("Sheet1").Select 
    Range("D3:E3").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Sheets("ALB2").Select 
    Range("C1").Select 
    ActiveSheet.Paste 
    ' 
    ' 
    ' 
    ' 
    Sheets("Sheet1").Select 
    Range("D127:E127").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Sheets("ALB126").Select 
    Range("C1").Select 
    ActiveSheet.Paste 

End Sub 
+1

這是什麼問題的本質區別,以及你的[較早的企業之一(http://stackoverflow.com /問題/ 14404874 /重複宏代碼)? –

+2

你需要做一些工作 - 你有什麼嘗試?你卡在哪裏?您是否在網上搜索了工作表和範圍和循環的語法?我們願意提供幫助,但我們需要知道你知道什麼和不知道什麼。如果你沒有基礎知識,我們不能教你如何編程。 –

回答

0

事情是這樣的:

Sub Macro1() 
    Dim Sh1 As WorkSheet, Sh2 As WorkSheet 
    Set Sh1 = Sheets("Sheet1") 
    Set Sh2 = Sheets("ALB1") 

    Dim R As Long 
    For R = 2 to 127 
    Sh1.Range("D" & R & ":E" & R).Copy Sh2.Range("C" & R - 1) 
    Next R 
End Sub 

甚至更​​好:

Sheets("ALB1").Range("C1:D126") = "=Sheet1!D2" 

分配是在一系列的整個範圍內的第一個單元的工作原理公式等同於鍵入公式放在第一個單元格上並將其右右複製。

+0

謝謝先生回覆我,但是給出的代碼並非如我所願。我有很多工作表選項卡,名稱從ALB1到ALB126。數據被逐行復制到位置C1中的相應頁面。 其實我沒有任何基本的VBA代碼。 感謝您的幫助。 :) –

+0

終於我找到了我的問題的解決方案,在這裏。 –

0

終於讓我找到我的問題的解決方案 這裏是

Sub Check_After() 
Dim Sh1 As Worksheet, Sh2 As Worksheet 
Dim lCount As Long 
Dim lCountA As Long 
Dim lCountB As Long 
Dim lNum As Long 

lCount = 0 
lCountA = 2 
lCountB = 1 

lNum = 127 
Set Sh1 = Sheets("Sheet1") 
Set Sh2 = Sheets("ALB" & lCountB) 
Do 
    Set Sh2 = Sheets("ALB" & lCountB) 
    Sh1.Range("D" & lCountA & ":E" & lCountA).Copy Sh2.Range("C1") 

    lNum = lNum - 1 
    lCount = lCount + 1 


    lCountA = lCountA + 1 
    lCountB = lCountB + 1 

Loop Until lNum = 1 
MsgBox "The Do Until loop made " & lCount & " loop(s)." 

末次