2013-10-07 3 views
0

코드의 첫 번째 부분은 잘 작동하지만 두 번째 코드와 같이 더 간단하게 만들 수 있습니까? 나는 두 번째 시도했지만 엑셀 리턴 "런타임 오류 1004 - 응용 프로그램 정의 또는 개체 정의 오류".코드 단순화

  Worksheets(sample).Range("ratio143144").Copy 
      Worksheets("Results").Activate 
      Range("D" & inserir.Row).Select 
      ActiveSheet.PasteSpecial Link:=True 

      Worksheets(sample).Range("ratio146144").Copy 
      Worksheets("Results").Range("I" & inserir).PasteSpecial Link:=True 

GolezTrol, 나는 inserir.row 사용하려고했으나 같은 오류를 반환 유지 엑셀. 아래, 완전한 코드. 어떤 제안이 있으십니까?

하위 CopiarOriginais()

Dim Certeza As VbMsgBoxResult 
    Dim sample As String 
    Dim inserir As Range 


     ActiveSheet.Name = Range("Y1").Value 
     sample = Range("Y1").Value 

    Certeza = MsgBox("Você tem certeza de que os dados originais já não foram copiado? Utilizar novamente essa função, após o teste 2-sigma ter sido aplicado, comprometerá os seus dados originais.", vbYesNo) 

     If Certeza = vbNo Then End 

     Sheets("Results").Activate 
     Range("B2").End(xlDown).Offset(1, 0).Select 
     Set inserir = ActiveCell 




     Sheets(sample).Activate 

     Range("B3:D122").Copy 
     Range("B132").PasteSpecial xlPasteValues 
     Application.CutCopyMode = False 



     Worksheets(sample).Range("ratio143144").Copy 

      Worksheets("Results").Activate 
      Range("D" & inserir.Row).Select 
      ActiveSheet.PasteSpecial Link:=True 

     Worksheets(sample).Range("ratio146144").Copy 

      Worksheets("Results").Activate 
      Range("I" & inserir.Row).Select 
      ActiveSheet.PasteSpecial Link:=True 

'  Worksheets("Results").Range("I" & inserir.Row).PasteSpecial Link:=True 

     Worksheets(sample).Range("ratio145144").Copy 
     Worksheets("Results").Range("G" & inserir.Row).PasteSpecial Link:=True 

     Worksheets(sample).Range("ratio1431442se").Copy 
     Worksheets("Results").Range("F" & inserir).PasteSpecial Link:=True 

     Worksheets(sample).Range("ratio1451442se").Copy 
     Worksheets("Results").Range("H" & inserir).PasteSpecial Link:=True 

     Worksheets(sample).Activate 


    Range("A1").Select 

End Sub 

답변

2

두 번째는 잘, 나는 생각하지만, 당신이 "I" 대신의 범위에서 "D"을 사용하고 작동해야합니다. 또한 inserir.Row 대신 inserir을 사용하고 있습니다. 그래서 나는 그저 간단한 오류라고 생각합니다. 이론적으로 잘 작동합니다.