2013-01-03 2 views
3

저는 Excel에서 매우 새롭고이 포럼에 완전히 익숙하지 않습니다.Excel에서 값만 붙여 넣는 방법

아래 포럼에서 코드를 가져 와서 내 필요에 맞게 수정했습니다.

http://pressf1.pcworld.co.nz/showthread.php?90122-Creating-Macro-to-copy-and-paste-data-into-the-next-empty-column.

Sub copyTotals() 
    Dim TargetSht As Worksheet, SourceSht As Worksheet, SourceRow As Integer, SourceCells As Range 
    Set SourceSht = ThisWorkbook.Sheets("DUN - Jan") 
    Set TargetSht = ThisWorkbook.Sheets("DUN Jan - Jan,Feb,Mar,Apr") 
    Set SourceCells = SourceSht.Range("L36,N36") 
    If TargetSht.Range("C11").Value = "" Then 
     SourceRow = 1 
    ElseIf TargetSht.Range("C41") <> "" Then 
     MsgBox ("The sheet is full, you need to create a new sheet") 
    Else 
     SourceRow = TargetSht.Range("C41").End(xlUp).Row + 1 
    End If 

    SourceCells.Copy TargetSht.Cells(SourceRow, 3) 
End Sub 

문제는 붙여 넣은 값에 소스의 형식이 지정되어있어 값만 붙여 넣기를 원합니다.

누군가 나를 도와주세요.

+2

1. 링크는 당신은 당신의 질문에 직접 코드를 붙여하여 모든 사람의 인생을 더 쉽게 만들 수 있습니다 2. 나뉩니다. – assylias

+1

링크가 고정되어 있고 또한 코드에 붙여 넣었습니다. – maldivianGeek

답변

4

사용 .Copy .PasteSpecial과 함께. 대신에 :

SourceCells.Copy TargetSht.Cells(2, SourceCol) 

이 작업을 수행 :

SourceCells.Copy 
TargetSht.Cells(2, SourceCol).PasteSpecial xlPasteValues 
+0

고마워요. 그게 :) 감사합니다. – maldivianGeek

0

바로 특별한 당신이 선택할 수있는 값을 붙여 넣기 만

편집 셀을 클릭하고 선택 : 매크로는 같은 원리 사용 .PasteSpecial xlPasteValues ​​여기에 같은

Set rng6 = .Range("A3").End(xlDown).Offset(0, 41) 
rng6.Copy 
ActiveSheet.Paste Destination:=Worksheets("Positions").Range("W2") 
+0

링크가 고정되었습니다. - 미안합니다. – maldivianGeek

2

을 매크로 레코더 수율 이런 종류의 사용. 나는 붙어있을 때 많이 사용한다.

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
2

(적어도 Excel 2010 이상에서는 복사하여 붙여 넣기 할 필요가 없습니다.) 범위의 .Value를 자신과 동일하게 설정하면됩니다. 예 :

rng.Value = rng.Value 

또는

Sheet1.Range("A1:A10").Value = Sheet1.Range("A1:A10").Value 

보낸 .Value "를 반환하거나, 지정된 범위의 값을 나타내는 변형 값을 설정한다."

이 값은 형식이 아닌 값에만 적용됩니다.

http://msdn.microsoft.com/en-us/library/office/ff195193(v=office.15).aspx

관련 문제