반응형
VBA 복사 셀 값 및 형식
값뿐만 아니라 글꼴 스타일(예: 굵거나 굵지 않음)을 복사하려면 다음 코드를 어떻게 수정해야 합니까?감사해요.
Private Sub CommandButton1_Click()
Dim i As Integer
Dim a As Integer
a = 15
For i = 11 To 32
If Worksheets(1).Cells(i, 3) <> "" Then
Worksheets(2).Cells(a, 15) = Worksheets(1).Cells(i, 3).Value
Worksheets(2).Cells(a, 17) = Worksheets(1).Cells(i, 5).Value
Worksheets(2).Cells(a, 18) = Worksheets(1).Cells(i, 6).Value
Worksheets(2).Cells(a, 19) = Worksheets(1).Cells(i, 7).Value
Worksheets(2).Cells(a, 20) = Worksheets(1).Cells(i, 8).Value
Worksheets(2).Cells(a, 21) = Worksheets(1).Cells(i, 9).Value
a = a + 1
End If
Next i
값을 직접 설정하는 대신 복사/붙여넣기를 사용하여 다음을 시도할 수 있습니다.
Worksheets(2).Cells(a, 15) = Worksheets(1).Cells(i, 3).Value
사용해 보십시오.
Worksheets(1).Cells(i, 3).Copy
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteFormats
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteValues
글꼴을 굵게 설정하려면 기존 할당을 유지하고 다음을 추가합니다.
If Worksheets(1).Cells(i, 3).Font.Bold = True Then
Worksheets(2).Cells(a, 15).Font.Bold = True
End If
Microsoft의 Excel VBA 설명서에 있는 이 페이지는 https://learn.microsoft.com/en-us/office/vba/api/excel.xlpastetype 에 도움이 되었습니다.
붙여넣기 방법을 사용자 지정할 수 있는 여러 옵션을 제공합니다.예를 들어 xlPasteAll(아마도 찾고 있는 것), xlPasteAllSourceTheme를 사용하여 또는 xlPasteAllExceptBorders를 사용할 수 있습니다.
jpw 이후에는 코드 줄이 많은 것을 절약하기 위해 작은 서브루틴에 솔루션을 캡슐화하는 것이 좋을 수 있습니다.
Private Sub CommandButton1_Click()
Dim i As Integer
Dim a As Integer
a = 15
For i = 11 To 32
If Worksheets(1).Cells(i, 3) <> "" Then
call copValuesAndFormat(i,3,a,15)
call copValuesAndFormat(i,5,a,17)
call copValuesAndFormat(i,6,a,18)
call copValuesAndFormat(i,7,a,19)
call copValuesAndFormat(i,8,a,20)
call copValuesAndFormat(i,9,a,21)
a = a + 1
End If
Next i
end sub
sub copValuesAndFormat(x1 as integer, y1 as integer, x2 as integer, y2 as integer)
Worksheets(1).Cells(x1, y1).Copy
Worksheets(2).Cells(x2, y2).PasteSpecial Paste:=xlPasteFormats
Worksheets(2).Cells(x2, y2).PasteSpecial Paste:=xlPasteValues
end sub
(현재 위치에 Excel이 없으므로 버그는 테스트되지 않은 것으로 양해 부탁드립니다.
아론 블러드 씨의 제공으로 오즈그리드에서 이것을 발견했습니다. 단순한 직접적이고 작업입니다.
Code:
Cells(1, 3).Copy Cells(1, 1)
Cells(1, 1).Value = Cells(1, 3).Value
하지만, 저는 당신이 우리에게 질문을 하기 위해 지나치게 단순화된 예를 제공한 것이 아닌가 의심됩니다.한 범위에서 다른 범위로 형식을 복사하려는 경우 다음과 같습니다.
Code:
Cells(1, 3).Copy
Cells(1, 1).PasteSpecial (xlPasteFormats)
Application.CutCopyMode = False
언급URL : https://stackoverflow.com/questions/25461314/vba-copy-cells-value-and-format
반응형
'programing' 카테고리의 다른 글
Eclipse에서 기본 텍스트 파일 인코딩을 변경하는 방법은 무엇입니까? (0) | 2023.06.03 |
---|---|
루비에서 문자열을 만들 때 삽 연산자(<)가 플러스 기호(+=)보다 선호되는 이유는 무엇입니까? (0) | 2023.06.03 |
문자열을 null 가능한 int로 구문 분석하는 방법 (0) | 2023.06.03 |
텍스트 보기에서 텍스트를 가로 및 세로로 중앙에 배치하려면 어떻게 해야 합니까? (0) | 2023.06.03 |
응용 프로그램의 시작 활동 변경 (0) | 2023.06.03 |