rand(life)
[VBA] 코드 모음 8 - 복사, 붙이기 관련 본문
Application.CutCopyMode = False '클립보드를 비운다. 이것없이 파일 닫으면 경고창 뜸
Range.Insert copyorigin:=True '복사한 셀 삽입
Cells.ClearHyperlinks '모든 셀에서 하이퍼링크 삭제
'[autofill 채우기]
날짜.AutoFill Destination:=날짜.Resize(15), Type:=xlFillWeekdays, '평일날짜로만 채움
' Type:=xlFillCopy '셀복사로 채움
[복사 붙이기, 잘라내기 붙이기]
Selection.Copy Sheets(2).Range("c5") ‘선택영역 복사해서 C5 위치에 붙여넣기
Range("C5:I5").Cut Range("A1:G1") ‘영역 잘라내서 뒤의 영역에 붙이기
[값으로 붙여넣기]
값으로 붙이는 부분은 이렇게 쓰세요. 반드시 두 줄로 쓰셔야합니다.
ws출고.Range("N2:N" & ws출고.Cells(Rows.Count, "N").End(3).Row).Copy
ws송장.Range("E2").PasteSpecial (-4163)
[resize 와 transpose 사용법]
Set a = r항목.Offset(1, 0) '사용량'이라는 글자의 바로 아래, '전력' 사용량
Worksheets(str).Cells(iDateRow, 3).Resize(, 3) = Application.Transpose(a.Resize(3))
Resize(, 3) = Resize(1, 3) 같은 의미이다.
Sheet2.Range("c4").Resize(L, 1) = Sheet1.Range("E5").Resize(L).Value2
오른쪽에 value를 , 왼쪽은 주소
또는 이런 식으로도 가능
Set k = r.Resize(, 3)
Set o = rngC.Offset(i + 1, 0)
o.Resize(, 3) = k.Value
[첫행만 남기고 데이터 삭제하는 법]
Sub clrscreen()
If Range("B2").Value = "" Then
Exit Sub
End If
With ActiveSheet.Range("A1").CurrentRegion
.Offset(1, 0).Resize(.Rows.Count - 1).Select
End With
Selection.ClearContents
End Sub
[pastespecial 옵션]
예시문
.Range("C1:C5").Copy
.Range("D1:D5").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationAdd
xlPasteAll -4104
Everything will be pasted.
xlPasteAllExceptBorders 7
Everything except borders will be pasted.
xlPasteAllMergingConditionalFormats 14
Everything will be pasted and conditional formats will be merged.
xlPasteAllUsingSourceTheme 13
Everything will be pasted using the source theme.
xlPasteColumnWidths 8
Copied column width is pasted.
xlPasteComments -4144
Comments are pasted.
xlPasteFormats -4122
Copied source format is pasted.
xlPasteFormulas -4123
Formulas are pasted.
xlPasteFormulasAndNumberFormats 11
Formulas and Number formats are pasted.
xlPasteValidation 6
Validations are pasted.
xlPasteValues -4163
Values are pasted.
xlPasteValuesAndNumberFormats 12
Values and Number formats are pasted.
xlPasteSpecialOperationAdd 2
Copied data will be added with the value in the destination cell.
xlPasteSpecialOperationDivide 5
Copied data will be divided with the value in the destination cell.
xlPasteSpecialOperationMultiply 4
Copied data will be multiplied with the value in the destination cell.
xlPasteSpecialOperationNone -4142
No calculation will be done in the paste operation.
xlPasteSpecialOperationSubtract 3
Copied data will be subtracted with the value in the destination cell.
[자동필터를 건 부분만 복사]
AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
field 필터를 걸 위치
criteria1 필터내용
visibledropdown : 화살표표시 (0=false, 1=true)
operator
xlAnd 1 논리곱
xlBottom10Items 4 하위 10개
xlBottom10Percent 6 하위10%
xlFilterCellColor 8 셀색깔
xlFilterDynamic 11 Dynamic filter
xlFilterFontColor 9 폰트색깔
xlFilterIcon 10 Filter icon
xlFilterValues 7 Filter values
xlOr 2 논리합
xlTop10Items 3 상위10개
xlTop10Percent 5 상위10퍼센트
With rngColumn
.AutoFilter 1, T, , , 0
.Offset(1, -3).Resize(.Rows.Count - 1, 2).Copy rng
.Offset(1).Resize(.Rows.Count - 1, 1).Copy rng.Offset(, 2)
.Offset(1, 2).Resize(.Rows.Count - 1, 2).Copy rng.Offset(, 3)
.AutoFilter
End With
End If
Next i
End Sub
range.autofill (목적지셀범위, 타입)
타입으로 "원본이 날짜일때, 일,평일,월,년 단위로 채울 수 있다)
또는 숫자사이에 덧셈/배수 관계가 있는것으로 가정하고 채울 수 있다
(1,3,5를 끌어채우기하면 7,9,11... 이 채워질것 같지만 실제로는 그렇지 않다)