2017-01-05 8 views
4

범위를 복사하여 VBA를 사용하여 값으로 붙여 넣으려고 시도하고 있지만 코드를 단계별로 실행하는 것처럼 보이지만 실행 한 후에도 수식이 없으므로 아무 것도하지 않습니다.복사하여 붙여 넣기 실패 vba

열 R 및 S는 수식이있는 유일한 장소이며 F8을 시도했으나 그 작업을 수행하지 못했습니다. 어쩌면 값으로 붙여 넣기에 잘못된 코드가있을 수 있지만 여기에 있습니다. 모든 열은 동일한 행 수를가집니다. 따라서 값으로 복사하여 붙여 넣기 만하면 오류가 발생하지 않습니다.

더 효율적인 방법으로 값을 복사하여 붙여 넣기를 권장 할 수 있다면 공유하시기 바랍니다.

Sub test() 
Dim ws2 As Worksheet 
Dim LR3 As Long 
Set ws2 = Worksheets("BRST") 
LR3 = ws2.Cells(ws2.Rows.Count, "R").End(xlUp).Row 
ws2.Range("R3", "S" & LR3).Copy 
ws2.Range("R3", "S" & LR3).PasteSpecial xlPasteValues 
End Sub 

답변

4

당신은 당신이 단순히 열 S에서에서 R3 마지막 행에 실행 셀에 수식을 교체하려는 경우, 그냥 세포와 함께 스스로를 통신보다 훨씬 느리다로 Copy 및 VBA에서 Paste을 사용하지 않아야합니다 다음이 대신 사용 :

Sub test() 

Dim ws2 As Worksheet 
Dim LR3 As Long 

Set ws2 = Worksheets("BRST") 
LR3 = ws2.Cells(ws2.Rows.Count, "R").End(xlUp).Row 

ws2.Range("R3", "S" & LR3).Value = ws2.Range("R3", "S" & LR3).Value 

End Sub 
+1

감사합니다, 그것은 매력처럼 작동합니다! – sc1324

1

당신은 단지 값의 범위를 변환 할 경우

With ws2.Range("R3", "S" & LR3) 
    .Value = .Value 
End With