반응형
첫 줄에 붙여넣은 엑셀에서 하이퍼링크 텍스트만 복사 시 링크가 끊기는 문제 때문에 자료를 옮길 때마다 링크를 다시 걸어야 했다면, 오늘 이 글에서 엑셀에서 하이퍼링크 텍스트만 복사 시 링크가 끊기는 문제를 깔끔하게 끝낼 수 있다.
현상 이해: 왜 링크가 사라질까?
- 클립보드 형식 충돌
Excel은 텍스트만 복사할 때CF_TEXT
→ RICH TEXT → HTML 순으로 서식 우선순위를 결정한다. 하이퍼링크는 HTML 형식에 포함되지만, 붙여넣기 대상이 메모장·카카오톡 등 단순 편집기이면CF_TEXT
만 받아 링크 정보가 버려진다. - 워크시트‑간 이동 시 내부 참조 오류
같은 통합 문서 내 다른 시트로 복사할 때 셀 참조로 저장된 링크 주소(internal://Sheet1!A1
)가 붙여넣기 위치에 존재하지 않으면 Excel이 링크 속성을 제거한다. - 외부 응용프로그램 간 서식 해석 차이
Outlook, Word, PowerPoint는 OLE 개체를 통해 하이퍼링크를 재해석하지만, 일부 ERP · Wiki 편집기는 서식이 포함된 RTF만 수용하고 HTML 링크는 무시한다.
반응형
빠르게 시도할 수 있는 기본 해결책
- 붙여넣기 옵션 사용 (Win+V 또는 Ctrl+Alt+V)
- 서식 유지 (U): 원본 서식 및 링크 포함.
- 링크 붙여넣기 (L): 주소만 유지하고 표시 텍스트는 대상 셀 값.
- Excel → Word 경유 후 복사
- Word는 내부적으로 HTML 태그를 보존해 다시 Excel로 붙여도 링크가 살아 있다. 간단한 데이터라면 임시 경로로 가장 빠르다.
- 함수로 분리 후 다시 결합
=HYPERLINK(링크주소셀, 표시텍스트셀)
방식으로 주소와 표시 텍스트를 분리해 두면, 복사‑붙여넣기 시 주소 손상 위험이 줄어든다.
- 클립보드 관리자 활용
- Ditto·ClipboardFusion 같은 도구는 RTF와 HTML 형식을 동시에 보존한다. 복사 직후 HTML 형식을 선택하면 링크가 유지된다.
VBA로 대량 하이퍼링크 복사 자동화
대량 데이터에서 수작업은 한계가 있다. 다음 매크로는 원본 범위의 셀을 읽어 표시 텍스트와 주소를 별도 열로 분리하고, 대상 시트에 하이퍼링크를 재생성한다.
Sub CopyHyperlinksKeepLink()
Dim src As Range, tgt As Range, c As Range
Dim tgtRow As Long: tgtRow = 2 ' 대상 시트 시작 행
Set src = Sheets("원본").Range("A2", Sheets("원본").Cells(Rows.Count, "A").End(xlUp))
Set tgt = Sheets("대상")
For Each c In src
If c.Hyperlinks.Count > 0 Then
With tgt
.Cells(tgtRow, "A").Value = c.Value ' 표시 텍스트
.Cells(tgtRow, "B").Value = c.Hyperlinks(1).Address ' 원 주소
.Hyperlinks.Add Anchor:=.Cells(tgtRow, "C"), _
Address:=c.Hyperlinks(1).Address, _
TextToDisplay:=c.Value ' 하이퍼링크 재생성
End With
Else
tgt.Cells(tgtRow, "A").Value = c.Value ' 일반 텍스트
End If
tgtRow = tgtRow + 1
Next c
End Sub
포인트
- 원본에 링크가 없으면 정상 텍스트로 처리하므로 오류가 없다.
Address
속성은 절대 경로로 반환되므로 외부 파일이라면 경로 재확인 필요.
실무 예시 테이블
구분 | 복사 경로 | 기본 Ctrl +C / Ctrl + V 결과 | 추천 방법 |
---|---|---|---|
내부 시트 → 다른 시트 | A1 → B1 | 링크 깨짐 | 붙여넣기 옵션 U |
Excel → 메모장 | A1 → Notepad | 텍스트만 남음 | Word 경유 |
Excel → 웹 Wiki | A1 → CKEditor | 서식 벗겨짐 | HTML 형식 선택 |
1000행 대량 이동 | 원본 → 보고서 | 수동 불가능 | VBA 매크로 |
하이퍼링크 유지 작업을 자동화하는 단계별 프로세스
1단계: 데이터 구조 점검
- 링크 포함 셀 위치, 대상 열·시트 미리 정의
- 표시 텍스트와 주소를 별도 열로 나눌지 결정
2단계: 매크로 실행 환경 설정
- 신뢰할 수 있는 위치에 통합 문서 저장
- 개발자 탭 → 매크로 보안 → 모든 매크로 사용
3단계: 스크립트 테스트
1‑5행 정도의 샘플 데이터에서 실행 → 링크·텍스트 정상 여부 확인.
4단계: 전체 데이터 적용 후 검수
- 하이퍼링크 열에 마우스오버 → 주소 툴팁 확인
- 외부 파일 링크라면 실제 열리는지 테스트
5단계: 반복 작업 자동화
- 단축키 지정(예:
Application.OnKey "^+H", "CopyHyperlinksKeepLink"
). - Power Automate / 윈도우 작업 스케줄러로 주기 실행도 가능.
오류·예외 상황별 대처 방법
- 주소가 ‘mailto:’로 변환
- Outlook이 기본 메일앱으로 연결된 PC에서
mailto:
가 강제 적용될 수 있다. 레지스트리의URL Protocols
값을 점검하거나 VBA로Address:=Replace(addr,"mailto:","")
후 재삽입.
- Outlook이 기본 메일앱으로 연결된 PC에서
- 네트워크 드라이브 경로가 절대 경로로 고정
\\Server\Share\
경로를 상대 경로(..\자료\
)로 치환하려면ThisWorkbook.Path
를 기준으로Replace
처리.
- 대상 시트에 동일 텍스트 중복
Find
후Offset
위치에 새로운 하이퍼링크를 추가하거나, 행 연결용 고유 ID 열을 만들어 충돌 방지.
추가 팁: 셀 서식 활용으로 가독성 향상
- 조건부 서식으로 하이퍼링크 열에만 밑줄 표시:
- 수식:
=ISBLANK(B2)=FALSE
→ 밑줄, 파란색.
- 수식:
- 셀 주석에 원본 링크 저장:
- 마우스오버 시 주소 확인 가능, 보고서 인쇄 시 주석 제외.
- 데이터 검증으로 잘못된 URL 차단:
=AND(LEFT(B2,4)="http",LEN(B2)>10)
설정.
요약과 실무 적용 체크리스트
엑셀에서 하이퍼링크 텍스트만 복사 시 링크가 끊기는 문제는 복사‑붙여넣기 경로에 따라 HTML 서식이 손실되며, VBA로 링크 재생성·붙여넣기 옵션 지정·클립보드 관리자를 통해 손쉽게 해결할 수 있다.
- 붙여넣기 옵션 U/L 단축키 숙지
- Word 경유 복사 테스트
- HYPERLINK 함수 분리‑재결합 구조 도입
-
CopyHyperlinksKeepLink
매크로 개인 저장소에 등록 - 정기 보고서에 자동화 스케줄 적용
이번 글을 끝까지 읽었다면 이제 엑셀에서 하이퍼링크 텍스트만 복사 시 링크가 끊기는 문제를 현장에서 다시는 걱정할 필요가 없다. 하이퍼링크 관리가 안정되면 보고서 완성 속도도 크게 빨라지니, 오늘 바로 업무 흐름에 적용해 보자.
반응형
'#2 엑셀 오류 가이드' 카테고리의 다른 글
엑셀에서 VLOOKUP 범위가 “#REF!” 대신 올바른 오류를 못 잡을 때 (0) | 2025.04.25 |
---|---|
엑셀 SharePoint 연동 오류: “서버에 저장할 수 없습니다” 해결 가이드 (1) | 2025.04.24 |
엑셀 VBA 파일 경로 특수문자 오류 해결법 (0) | 2025.04.22 |
엑셀에서 목록 상자(Form Control) 항목이 비어 있을 때 해결 — 완벽 가이드 (0) | 2025.04.21 |
엑셀 표 서식 사라짐 현상 해결 가이드 (0) | 2025.04.20 |