2013-08-02 4 views
2

다른 통합 문서에서 범위를 복사하고 (11 개의 열과 다양한 행의 복사본 범위가 있음) 이미 기본 통합 문서의 값만 삽입/붙여 넣기 할 수있는 방법을 찾고 있습니다.Excel VBA - 값만 삽입하는 방법?

그냥 붙여 넣기는 문제가 없지만 마지막 (SUM-) 줄을 덮어 쓰지 않으므로 값을 삽입하고 싶습니다. 내 지식으로는 InsertSpecial xlInsertValues와 같은 것이 없습니다.

그래서 복사 된 범위의 계산 된 행을 기준으로 전체 빈 행을 삽입하고 "E"열을 "O"열에 붙여 넣을 수 있습니까?

일부 전제 조건은 다음과 같습니다

  • copyrange 11 열 나는이 두 문서 사이에 두 번 전환하는 것을 피하기 위해 노력하고있어 행
  • 의 다양한 존재한다. 따라서 extern 통합 문서를 열고 값을 복사 한 다음 내 기본 통합 문서를 열고 복사 된 데이터를 범위의 왼쪽과 오른쪽 빈 셀에 삽입하려고합니다.

이것은 내가 지금까지 얻은 것입니다. 삽입 부분에서는 값이 붙여 넣기/삽입되지 않기 때문에 모두 잘못되었습니다. 이것은 더 큰 코드의 일부일뿐입니다. Rng31은 extern 통합 문서의 복사 된 범위입니다.

 Dim Rng31 As Range 
     Set Rng31 = Rng21.Resize(Rng21.Rows.Count, Rng21.Columns.Count + 10) 
     Dim regels As Integer 
     regels = Rng31.Rows.Count 
     Rng31.Copy 

     Wbbase.Activate 
     Sheets(2).Activate 
     Dim onderste As Range 
     Set onderste = Range("E65536").End(xlUp).Offset(1, 0) 
     onderste.Insert shift:=xlDown 
     Selection.PasteSpecial xlPasteValues 

답변

2
... 
InsertValues Rng21.Resize(Rng21.Rows.Count, Rng21.Columns.Count + 10), _ 
      Wbbase.Sheets(2).Range("E65536").End(xlUp).Offset(1, 0) 
...   




Sub InsertValues(rngCopyFrom As Range, rngCopyTo As Range) 
    Dim rngDest As Range 
    Set rngDest = rngCopyTo.Resize(rngCopyFrom.Rows.Count, _ 
            rngCopyFrom.Columns.Count) 
    Application.CutCopyMode = False 'Edit Added:clear any copied data 
    rngDest.Insert shift:=xlDown 
    rngDest.Offset(-rngCopyFrom.Rows.Count).Value = rngCopyFrom.Value 
End Sub 
0

문제는 당신이있는 경우 셀 (즉, 그것의 클립 보드에) 유일한 옵션은 "삽입 복사 한 셀"에 있기 때문에 단순히 "새 행을 삽입 할 수 없습니다"복사 있다는 것입니다 따라서 onderste.Insert은 복사 된 셀을 삽입하고 수식을 유지합니다. 또한 Selection.PasteSpecial을 호출합니다. 코드 포스트에서 아무 것도 선택하지 않기 때문에 원하는 것 같지 않으므로 이전에 선택했던 것은 값을 포함 할 것입니다. 당신은 행 첫째, 다음 복사를 삽입하고 셀 값을 붙여 넣을 수 있습니다

  1. 새로운 삽입,
  2. 복사 셀 (이 앞뒤로 통합 문서 사이의 전환 필요) :

    당신은 몇 가지 옵션이 있습니다 행 (무엇을하고 있는지)을 선택하고 행을 지우고 값을 붙여 넣습니다.

    Range("E65536").End(xlUp).Offset(1, 0)

    Range("E" & Rows.Count).End(xlUp).Offset(1, 0)

    로 언급 될 것이다 : 보조 노트로