2016-07-13 2 views
1

첫 번째 두 줄은 완성 된 시트를 다른 파일로 복사하는 루프입니다. 서식을 지정하고 링크를 복사하지 않기 때문에 괜찮습니다. 단지 값으로부터. 주석 처리 된 두 번째 부분은 값만 복사 할 것이므로 작동하지만 값이있는 처음 두 행에서와 같이 복사 된 서식을 원합니다. 나는 이것을 어떻게 결합 할 수 있습니까? 나는 다른 예제를 보았고 나는 작동하는 대답을 얻지 못하는 것 같습니다. 감사한 워크 시트의 값을 다른 워크 시트 파일로 복사

   xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) 
       xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) 


       'xlWorksheetSource.UsedRange.Copy() 
       'xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
       'xlWorkDestSource.UsedRange._PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, False, False) 
       'xlWorkDestSource.Name = sheet.Name 

답변

1

이 셀 서식하고 값을 붙여 작동합니다

xlWorksheetSource.UsedRange.Copy() 
xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteAllUsingSourceTheme 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteValues 

만 필요한 경우이 할 수있는 서식 값과 번호 :

xlWorksheetSource.UsedRange.Copy() 
xlWorkDestSource = xlWorkbookDestination.Worksheets.Add() 
xlWorkDestSource.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats 

업데이트

병합 된 셀을 사용하려면이 방법이 효과적입니다. 더 나은/빠른 방법을있을 수 있습니다

xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name) 
       xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)) 

xlWorkDestSource = xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count) 

For each cel in xlWorkDestSource.UsedRange 
    cel.MergeArea.Value = cel.MergeArea.Value 
Next 

* 난 당신이 코드에서하지 않았기 때문에, 객체의 자격,하지만 확실히 가장 좋은 방법은하지 않았다 있습니다.

+0

나는 첫 번째 시도하고 "이 작업을 병합 된 셀을 동일하게 크기가 있어야합니다"오류가 발생합니다. – Sirus

+0

@ 바이러스 - 그게 완전히 다른 문제입니다. 당신이 세포를 병합했다는 것을 아는 것이 유용했을 것입니다. 병합 된 셀을 먼저 제거하는 것이 좋습니다. (서식 지정을하는 경우 열의 두 개 (또는 그 이상)의 셀 서식 지정에서'CenterAcrossSelection'을 사용해보십시오. –

+0

원본 스프레드 시트를 변경할 수 없습니다. 형식이 변경되어 변경할 수 없습니다. – Sirus

관련 문제