본문 바로가기
etc

[Excel] 하이퍼링크, 시트정렬

by wycho 2022. 9. 14.

엑셀에서 URL 주소가 스트링으로 되어있을 때가 있다.

 

  • 하이퍼링크로 만드는 방법은 다음과 같다.
=hyperlink(URL주소, [표시할이름])
or
= =hyperlink("#"&시트명&"!A1",[표시할이름])
  • 매크로를 사용하는 방법도 있다. [ Alt+F11 => Insert => Module ]
Public Sub Convert2Hyperlinks()
  Dim Cell As Range
  For Each Cell In Intersect(Selection, ActiveSheet.UsedRange)
    If Cell <> "" Then
      ActiveSheet.Hyperlinks.Add Cell, Cell.Value
    End If
  Next
End Sub

엑셀에서 영역을 선택한 후 VB 창에서 F5를 누르거나, [ Alt+F8 ] 로 매크로를 열어 실행하면 하이퍼링크로 바뀐다.

 

  • 여러개의 하이퍼링크를 한번에 열고 싶으면 VS에서 다음과 같이 작성하고 F5 로 실행한다.
Sub OpenMultipleLinks()
 'From Windows247
     Dim MultiLink As Hyperlink
     Dim SelectedRng As Range
     On Error Resume Next
     'Window Heading
     WLTitleId = "WL Open Multiple Links"
     'Set Range
     Set SelectedRng = Application.Selection
     Set SelectedRng = Application.InputBox("Range", WLTitleId, SelectedRng.Address, Type:=8)
     'Open Links One by One
     For Each MultiLink In SelectedRng.Hyperlinks
         MultiLink.Follow
     Next
 End Sub

 

  • 시트의 정렬이 필요할 경우는 다음과 같다.
Sub SortSheets()

Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult

iAnswer = MsgBox("Sort sheets by ascending order ?", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
    For i = 1 To Sheets.Count
        For j = 1 To Sheets.Count - 1
            If iAnswer = vbYes Then
                If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
                    Sheets(j).Move After:=Sheets(j + 1)
                End If
            ElseIf iAnswer = vbNo Then
                If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then Sheets(j).Move After:=Sheets(j + 1)
            End If
        Next j
    Next i
End Sub

 

 

 

 

'etc' 카테고리의 다른 글

MariaDB setting  (0) 2022.10.25
바로가기  (1) 2022.10.03
pathlib in python  (0) 2022.08.18
[DB] SQL with python  (0) 2022.05.31
Markdown guide  (0) 2022.03.09

댓글