2012-10-30 4 views
2

참조 (범위 또는 셀)에서 변수로 객체를 복사 할 수 있습니까?참조에서 변수로 객체 복사

많은 작업을 계산하고 많은 복사 + 붙여 넣기 작업을 사용하는 거대한 매크로가 많은 셀을 반복하고 변경하는 이유 때문에이 작업을 수행하려는 이유가 있습니다. 이것은 전혀 잘 수행되지 않으므로 GUI 조작을 최소화하고 배경에서 작업하기를 원합니다. 이렇게하면 결국 GUI에 붙여 넣는 배열에서 전체 결과를 얻을 수 있습니다. 문제는 다른 속성 (예 : 크기 또는 색상)을 변경해야하기 때문에 셀/범위의 값뿐만 아니라 객체도 필요하다는 것입니다.

+0

코드 속도가 느리고 속도를 높이려면 게시 해보십시오 ... –

+0

@TimWilliams 너무 많은 코드입니다. 원래의 질문에 답을 얻을 수 있다면 스스로 해결할 수있을 것입니다. – Lerkes

+0

나는 당신이하는 말을 이해하고 있지만, 어떻게하는지 정확히 알지 못하면서 이미하고있는 일에 더 나은 대안을 제시하기가 어렵습니다. 모든 것을 게시 할 필요는 없으며 대표적인 부분 만 게시 할 수 있습니다. –

답변

1

개체 모델에 대한 각 호출과 관련된 오버 헤드로 인해 개별 셀에서 루핑과 같은 작업이 느립니다. 그래서 트릭은 각 호출에서 여러 셀로 작업하는 것입니다.
값에 대해 셀 범위의 값 배열을 2 차원 배열로 된 변형으로 가져올 수 있습니다. 그런 다음 배열을
범위에 다시 할당 할 수 있습니다. 형식에 대한 조건부 형식을 사용해야하는 경우 셀 범위가 넓거나 형식을 복사하여 넓은 범위의 셀에 붙여 넣을 수 있습니다.

+0

문제는 내가 갖고있는 데이터에 따라 거의 각 셀을 다르게 변경해야한다는 것입니다. 그래서 저는 셀 객체의 사본을 얻고 싶었습니다. 그래서 모든 셀 사본을 원본에 붙여 넣을 때까지 GUI에서 아무 것도하지 않아도됩니다. – Lerkes

+3

VBA에서 Range 개체를 사용할 수 있지만 범위 개체는 실제로 범위 복사본이 아니므로 제한된 용도로만 사용됩니다. GUI를 사용해야하는 이유를 모르겠다. Screenupdating 및 Automatic 계산이 해제 된 상태에서 VBA에서 모든 작업을 수행하면됩니다. –

+0

내가 언급 한 옵션으로 프로그램을 테스트했습니다. 계산 시간은 ~ 45s에서 ~ 35s로 떨어졌습니다. 고마워, 고마워. – Lerkes

관련 문제