2012-02-08 3 views
1

다음은 내 제외 데이터입니다 :열 데이터

나는 B가 C를

되기 전에, 그래서 B 열에 F 열 데이터를 이동하고 오른쪽에 B 열 데이터를 이동하려는
A B  c .... F    G 

1 test vb1  testing1  open 
2 test1 vb2  testing1  close 
2 test2 vb3  testing1 
4 test3 vb4  testing1 

어떻게 Excel VBA 프로그래밍을 사용하여이 작업을 수행 할 수 있습니까?

감사합니다,

Chaitu

+2

수동으로 매크로를 기록하면서 코드를 살펴 보았습니까? – assylias

답변

8

이 시도 : 도구> 매크로>, Visual Basic 편집기 :

  • Visual Basic 편집기 엽니 다

    Option Explicit 
    
    Sub MoveColumns() 
    
    With ActiveSheet 
        .Columns("F:F").Cut 
        .Columns("B:B").Insert Shift:=xlToRight 
        .Columns("C:C").Cut 
        .Columns("E:E").Insert Shift:=xlToRight 
    End With 
    Application.CutCopyMode = False 
    End Sub 
    

    이 사용하기

  • 모듈을 삽입하십시오 (VBAProject 및 Insight를 마우스 오른쪽 단추로 클릭하십시오. ert> Module)
  • 이 새로운 모듈에 위의 코드를 붙여 넣으십시오.

당신은 다음 Excel에서 코드를 실행할 수 있습니다 도구> 매크로 ...> 매크로 ...

[편집] 또 다른 복사 - 붙여 넣기없이 시도

Option Explicit 

Sub copyWithArray() 
Dim lLastrow As Long 
Dim aValues As Variant 

With ActiveSheet 
    lLastrow = .Cells(.Rows.Count, "AE").Row 
    'store data from the column F 
    aValues = .Range("F1:F" & lLastrow).Value 
    '"move" data a column further 
    .Range("C1:AE" & lLastrow).Value = .Range("B1:AD" & lLastrow).Value 
    'copy data from column C to column B 
    .Range("B1:B" & lLastrow).Value = .Range("C1:C" & lLastrow).Value 
    'restore data copied from column F to column B 
    .Range("B1:B" & lLastrow).Value = aValues 
End With 
End Sub 
+0

나는 AE까지 열을 가지고있다. 모든 열에 잘라내어 삽입 할 수있다. – user569125

+0

@ user569125 : 나는 다른 대답으로 나의 대답을 편집했으나, 이것은 처음 것보다 빨리 작동하지 않을 것이라고 생각한다. – JMax

+0

무슨 뜻입니까? "모든 칼럼에 잘라내어 삽입 할 수 있습니까?" Jmax의 첫 번째 방법은 모든 열을 잘라내어 삽입하지 않습니다. 하나의 열을 잘라내어 붙여 넣고 다른 모든 열을 오른쪽으로 이동합니다. 너 해봤 니? – Reafidy

1

그래서 B 이전에 C가됩니다.

나는 당신이 실제로 무엇을 말하려고하는지 이해하기 위해 여러 번 읽어야했다. 그리고 나는 아직 그것이 정확하지 않을 수도 있습니다. :) 당신은 이것을 말하는거야? 확인해주세요. 예, 당신이 필요로하는 모든이 jmax에의 코드에서 불과 처음 두 줄 경우

"C는 오른쪽으로 한 자리를 이동할 때 당신은 B 대신에 F를 삽입 할 때 그래서 B는 이제 C의 자리에있을 것입니다"

Sub Sample() 
    Columns("F:F").Cut 
    Columns("B:B").Insert Shift:=xlToRight 
End Sub 
+0

정말 도움이되었습니다. – henry