자막을 정리할 때 필요한 코드.
Option Explicit
Sub Subtitle_delete()
If Selection.Count > 1 Then
' Debug.Print Selection.Count
Selection.Delete Shift:=xlUp
Else
If MsgBox("1개의 셀인데 삭제하겠습니까?", vbYesNo) = vbYes Then
Selection.Delete Shift:=xlUp
End If
End If
End Sub
Sub Subtitle_merge()
Dim r As Long, h As Long
With Selection.Resize(, 1)
h = .Rows.Count - 2
Debug.Print h
If h < 1 Then Exit Sub
For r = 1 To h Step 2
.Cells(1) = .Cells(1) & " " & .Cells(r + 2)
.Cells(2) = .Cells(2) & " " & .Cells(r + 3)
Next
.Cells(3).Resize(h).Delete Shift:=xlUp
End With
End Sub
Sub Subtitle_Split()
Dim rngC As Range, r As Long, c As Long, S As String, v
Columns("A:B").NumberFormat = "@" '// A:B열을 텍스트 서식으로
If Cells(Rows.Count, 1).End(3).Row > 1 Then
Range("b1:b" & Cells(Rows.Count, "B").End(3).Row).Offset(1).ClearContents
Else
MsgBox "정리할 자막이 없습니다" & vbCr & "자막부터 복사하세요"
Exit Sub
End If
r = 1
For Each rngC In Range("a2:a" & Cells(Rows.Count, 1).End(3).Row)
' Debug.Print "현재 행 = " & rngC.Row
If Left$(rngC, 2) = "- " And InStrRev(rngC, "- ") > 1 Then
r = r + 1
v = Split(rngC, "- ")
On Error Resume Next
Cells(r, 2) = v(1)
S = S & vbLf & v(2)
' Debug.Print "s 값 : " & s
Else
If S <> "" Then SplitTextAddLine r, S
r = r + 1
Cells(r, 2) = rngC
End If
Next rngC
If S <> "" Then SplitTextAddLine r, S
MsgBox "A열에서 복사 완료"
End Sub
Sub SplitTextAddLine(r, S)
Dim v, c As Long
v = Split(S, vbLf)
For c = 1 To UBound(v)
r = r + 1
Cells(r, 2) = v(c)
Next
S = ""
End Sub
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
[VBA] 셀 병합 (바로 위아래 셀, 한행 떨어진 셀) (0) | 2015.08.15 |
---|---|
[VBA] 자막 대사 분리 저장 (0) | 2015.08.14 |
[VBA] 동일 셀내에서 중복값 제거 (1) | 2015.07.21 |
[VBA] SQL Query (Select 구문) (0) | 2015.07.19 |
[VBA] VLOOKUP VBA 와 FIND VBA 속도 차이 (1) | 2015.07.13 |