값만 복사 붙여넣기( xlPasteValues )
시트 A의 전체 열을 시트 B에 복사하려고 합니다. 시트 A의 열에는 공식으로 구성된 값이 있습니다.xlPasteValues만 사용하여 SheetA 열 값을 복사하고 있습니다.그러나 다른 시트 B에 값을 붙여 넣는 것은 아닙니다.시트B의 열이 비어 있습니다.마이 VBA 코드
Public Sub CopyrangeA()
Dim firstrowDB As Long, lastrow As Long
Dim arr1, arr2, i As Integer
firstrowDB = 1
arr1 = Array("BJ", "BK")
arr2 = Array("A", "B")
For i = LBound(arr1) To UBound(arr1)
With Sheets("SheetA")
lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row)
.Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy
Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues
End With
Next
Application.CutCopyMode = False
End Sub
열 전체를 복사하고 싶은 경우 다음과 같은 작업을 수행하여 코드를 크게 간소화할 수 있습니다.
Sub CopyCol()
Sheets("Sheet1").Columns(1).Copy
Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues
End Sub
또는
Sub CopyCol()
Sheets("Sheet1").Columns("A").Copy
Sheets("Sheet2").Columns("B").PasteSpecial xlPasteValues
End Sub
또는 루프를 유지하려면
Public Sub CopyrangeA()
Dim firstrowDB As Long, lastrow As Long
Dim arr1, arr2, i As Integer
firstrowDB = 1
arr1 = Array("BJ", "BK")
arr2 = Array("A", "B")
For i = LBound(arr1) To UBound(arr1)
Sheets("Sheet1").Columns(arr1(i)).Copy
Sheets("Sheet2").Columns(arr2(i)).PasteSpecial xlPasteValues
Next
Application.CutCopyMode = False
End Sub
값만 복사하고 싶기 때문에 다음 값을 전달할 수 있습니다.arr1
에 직접arr2
복사/복사를 피할 수 있습니다.
내부 코드For
루프, 내부With
블록, 후lastrow
계산:
Sheets("SheetB").Range(arr2(i) & firstrowDB).Resize(lastrow).Value = .Range(arr1(i) & 1).Resize(lastrow).Value
개인적으로는 컬럼만 있으면 조금 짧게 할 수 있습니다.
For i = LBound(arr1) To UBound(arr1)
Sheets("SheetA").Columns(arr1(i)).Copy
Sheets("SheetB").Columns(arr2(i)).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next
이 코드 스니펫에서 알 수 있듯이, 에는 큰 의미가 없다.lastrow
또는firstrowDB
다음을 사용할 수 있습니다.
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
이것도 사용하셔도 됩니다.
Sub CopyPaste()
Sheet1.Range("A:A").Copy
Sheet2.Activate
col = 1
Do Until Sheet2.Cells(1, col) = ""
col = col + 1
Loop
Sheet2.Cells(1, col).PasteSpecial xlPasteValues
End Sub
나도 이 문제를 겪어본 적이 있는데 답을 찾은 것 같아.
매크로를 실행하기 위해 버튼을 사용하는 경우, 매크로가 다른 매크로에 링크되어 있을 가능성이 높으며, 현재 작업 중인 매크로의 버전으로 저장해도 인식하지 못할 수도 있습니다.버튼을 사용하여 매크로를 실행하는 대신 VBA(F5)에서 직접 매크로를 실행해 보십시오.내 생각엔 그게 효과가 있을 것 같아.버튼의 매크로를 실제로 실행할 매크로에 재할당하기만 하면 됩니다.
selection=values.values
이것은 매우 빠른 방법으로 일을 처리한다.
언급URL : https://stackoverflow.com/questions/23937262/copy-paste-values-only-xlpastevalues
'source' 카테고리의 다른 글
숏컷에서 특정 디렉토리의 Powershell을 엽니다. (0) | 2023.04.15 |
---|---|
.gitconfig에서 여러 사용자를 지정할 수 있습니까? (0) | 2023.04.15 |
Bash에서 ssh를 실행하고 여러 명령을 실행하는 가장 깨끗한 방법은 무엇입니까? (0) | 2023.04.15 |
StaticExtension 값을 확인할 수 없습니다. (0) | 2023.04.10 |
iOS 시뮬레이터에서 테스트하는 동안 오류 발생:부트스트랩 서버에 등록할 수 없습니다. (0) | 2023.04.10 |