2013-09-16 3 views
-1

저는 VBA를 처음 사용하고 숫자 블록을 이동하는 데 사용되는 빠른 매크로를 만드는 데 어려움이 있습니다.excel vba에서 열까지 함수를 수행 할 때까지 이동

는 내가 만드는 시도하고 눌려있는 버튼입니다 :

가의 내용을 이동합니다 (I, 5) E63

F67 아래로 (I, 16)에서 세포에 : F110

Row 10에 "Low"또는 "High"가 포함되어 있는지 여부에 따라 N106 : N109 세 개의 셀이 셀 (i12 : i14)에 이동합니다. 여기서 i는 열 참조입니다. 코드의

범위 섹션은 이러한 목표를 달성하고 그들이 잘 작동하는 무엇인가, 나는 데 문제가

사람이이 작업을 수있는 방법을 알고 있나요 (내가) 내 Do.Until 행과 및 참조 열 함께 ? 감사합니다

UPDATE 그래서 레인지 기능의 문자열이 줄 하나 비트 제외한 모든 문제를 해결 할 수있었습니다 싯다 르트 나라 얀의 도움에 감사합니다. 이유는 여기에 .Formula 대신 붙여 넣기를 사용하는 이유입니다. 그렇지 않으면 셀 A12 : A14에서 Z12 : Z14까지 모두 올바르지 않은 것과 같게됩니다. 상관없는 다른 부분들. 이 줄에 유형 13 불일치 오류가 발생합니다.

Sub Columntest() 
Dim i As Integer 
    i = 5 
    Do Until Cells(5, i).Value = "" 
     If Cells(10, i).Value = "Low" Then 
        Range("E63").Formula = Cells(5, i) 
        Range("F67:F110").Formula = Cells(16, i) 
        Range("O106:O108").Copy 
        Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 
     End If 
     If Cells(10, i).Value = "High" Then 
        Range("E63").Formula = Cells(5, i) 
        Range("F67:F110").Formula = Cells(16, i) 
        Range("N106:N108").Copy 
        Range(Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 
     End If 
    i = i + 1 
    Loop 

종료 하위

+3

조류보기 : 'i'즉 'i = i + 1'을 늘리지 않아야합니까? 또한'다음'은'Do'입니까? 그리고 왜 DOT가'세포들 '앞에서? –

+0

이제 많은 오류를 볼 수 있습니다 :) 왜'Column'이 아닌'Columns'입니까? 'Range ("="& Column (i) & "10")'범위는 ... 어떻게 샘플을 첨부하고 정확히 달성하려는 것을 보여줄 수 있습니까? –

답변

0

당신이 열 객체와 범위 참조 문자열 연결하는 시도하고 있기 때문에 유형 불일치는 다음과 같습니다

Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 

이 대신 사용해보십시오을 :

Cells(12, i).PasteSpecial Paste:=xlPasteValues 
관련 문제