2013-11-01 6 views
0

첫 번째 사용자는 질문에 형식 가이드 라인을 따르지 않아서 사과드립니다.VBA - 셀 범위 복사 (임의 행)

나는 조정하고 싶은 매일 변화하는 여러 시트의 데이터를 가지고 있습니다. 하나의 특정 시트에서 고객 목록에 대한 정보가 자세히 설명되어 있습니다. 내가 붙여 넣은 아래 내가 무작위로 이들 기업 중 하나를 선택하고 특정 세부 사항을 나열하는 데 필요한 화해의 일환으로

이러한 세부 열 3, 5, 7, 14, 20

을에 얼마나 많은 고객이 하루 (마지막 행)에 있으며 임의의 고객을 데리고 데이터를 나열하는지 코드를 작성하십시오.

그러나 런타임 오류 450이 계속 발생합니다 : 잘못된 번호의 arguements 또는 잘못된 속성 할당.

아무도 도와 줄 수 있습니까?

'Regency 
     Dim Regrows As Integer 
     Dim RegCust As Integer 
     Dim Regcustomer As Range 

     AgedDebtors.Activate 
     AgedDebtors.Sheets("Regency").Activate 
     Regrows = Range("C" & Rows.Count).End(xlUp).Row 
     RegCust = Int((Regrows - 45 + 1) * Rnd + 45) 

     With AgedDebtors.Sheets("Regency") 
      Regcustomer = Range(Cells(RegCust, 3), Cells(RegCust, 5), _ 
           Cells(RegCust, 7), Cells(RegCust, 14), _ 
           Cells(RegCust, 20)) 
      Regcustomer.Activate 
     Selection.Copy 

     End With 

답변

1

당신은 개체 변수에 값을 할당 할 때 Set를 사용할 필요하지만 가장 큰 문제는 여기에 원하는 방식으로 작동하지 않습니다 Range()입니다.

Set Regcustomer = .Range(Replace("C?,E?,G?,N?,T?", "?", RegCust)) 

당신은 범위를 복사 활성화 될 시트가 필요 없으며이 범위를

Dim Regrows As Integer 
    Dim RegCust As Integer 
    Dim Regcustomer As Range 

    With AgedDebtors.Sheets("Regency") 
     Regrows = .Range("C" & .Rows.Count).End(xlUp).Row 
     RegCust = Int((Regrows - 45 + 1) * Rnd + 45) 
     .Range(Replace("C?,E?,G?,N?,T?","?",RegCust)).Copy 
    End With 
+0

영리한 솔루션을 활성화해야하지 않습니다. Intersect 버전을 제안하려고했지만이 방법이 더 좋습니다. – tigeravatar

+0

Tim 감사합니다. 귀하의 도움을 많이 주시면 감사하겠습니다. – Stu