programing

Excel에서 클릭하면 하이퍼링크가 #에서 %20-%20으로 변경됩니다.

cafebook 2023. 4. 28. 21:30
반응형

Excel에서 클릭하면 하이퍼링크가 #에서 %20-%20으로 변경됩니다.

Excel 2013 시트에 내부 웹 사이트로 연결되는 하이퍼링크가 있습니다.마우스 오른쪽 단추를 클릭하고 "하이퍼링크 편집"을 선택하면 주소 표시줄에 다음과 같은 내용이 나타납니다(정확함).

https://myserver.company.com/home/default.html#article?id=1203291003

그러나 왼쪽 클릭, 중간 클릭 또는 오른쪽 클릭 -> 하이퍼링크 열기를 클릭하면 동일한 동작이 나타납니다. IE11이 열리고 링크(아래 그림)를 찾을 수 없기 때문에 http 404 오류가 발생합니다.

https://myserver.company.com/home/default.html%20-%20article?id=1203291003

무엇이 그것을 변환시킬 수 있습니까?#%20-%20이것은 매우 이상합니다 왜냐하면%20. 이 경우 URL은 공백입니다.

이것은 MS Excel의 알려진 문제입니다.기본적으로 해시/파운드()# 기호는 파일 이름에 사용할 수 있는 유효한 문자이지만 Office 문서의 하이퍼링크에서는 허용되지 않습니다.로의 변환%20-%20의도적인 것으로 보입니다.

그러나 Excel 2010과 동일한 문제를 강조하면서 이 질문을 살펴 보십시오.

IE의 브라우저 문제일 수도 있다는 뜻인 것 같습니다.테스트를 위해 일시적으로라도 다른 브라우저를 기본값으로 설정할 수 있으면 작동할 수 있습니다.

저는 이것이 몇몇 사람들에게 도움이 될 수 있다고 생각하기 때문에 제가 그것을 올렸다고 말했습니다: 저는 Word와 같은 문제가 있었고 주변 작업으로 URL Encoder를 사용했습니다. 여기와 같은 많은 것을 빠르게 검색합니다:

http://www.w3schools.com/tags/ref_urlencode.asp

URL을 붙여넣기만 하면 Word Excel 등에서 하이퍼링크로 작동할 URL이 반환됩니다.

이것은 IE 고유의 것으로 보이며, Chrome에서는 URL이 올바르게 작동합니다.

하지만 나는 추가하는 것을 발견했습니다.ENCODEURL()문제를 해결해 주었습니다.

원본 버전:

=IFERROR(HYPERLINK(VLOOKUP(B12,Table1,13,0),"Click Me"),"")

고정 버전:

=IFERROR(HYPERLINK(ENCODEURL(VLOOKUP(B12,Table1,13,0)),"Click Me"),"")

해결 방법은 다음과 같습니다.

HKEY_CLASSES_ROOT.htm 키의 기본값 "htmlfile"을 다른 값(예: ")으로 변경합니다.IHTML".

이 답변은 다음 기사를 기반으로 하며 MS Escel 2010에서 근무했습니다. http://answers.microsoft.com/en-us/office/forum/office_2013_release-word/word-2013-hyperlink-converting-to-20-20/4e8a2e8d-b889-4c77-8276-551b11e296d4

#(hashtag|파운드 기호) 대신 %23을 사용하여 이 문제를 피할 수 있었습니다.내 URL은 이제 Excel 2013 내에서 작동합니다.'hovertext'는 URL에 # 기호가 표시되지만 링크를 편집하면 %23이 표시됩니다.

http://www.example.com/page#location하지 않음

http://www.example.com/page%23location작동하다

해결 방법: PDF로 저장

클라이언트의 경우 읽기 전용이며 필요하지 않은 엑셀/워드 형식으로 파일을 저장할 수 있습니다. "#"이 있는 하이퍼링크는 PDF 판독기에서 작동합니다.예: http://help.overdrive.com/ #http://? ?ade

이것은 제가 입어 본 기계에 적용되지 않았습니다.아래 항목이나 제 쪽의 공정 변경으로 문제가 수정되었습니다.

MS Word 하이퍼링크에서 #은 %가 됩니다.이것은 64비트 Win7 OS에서 IE 11을 실행하는 동안 저에게 일어나고 있는 일입니다.# 기호가 있는 하이퍼링크가 있는 워드 문서가 문제를 일으키고 있다고 생각합니다.

http://isservice.prv/eng/imit/catalogue/software_application_service.shtml#outlook_text와 같은 오류 404가 발생하는 단어 문서의 하이퍼링크를 시도합니다.

이제 끝 근처의 # 기호를 /로 변경하면 아래 수정된 하이퍼링크와 같이 예상대로 단어 문서에서 IE 11의 하이퍼링크가 열립니다.http://isservice.prv/eng/imit/software_application_service.shtml/syslog_text

Support Spec Word 문서에 포함된 하이퍼링크로 링크를 사용하거나 적용하기 전에 Support Spec Word 문서에 있는 Self-serve 사이트와 해당 컨텐츠를 사용할 때 #이 포함된 링크를 /slash로 변경해야 합니다.

에서는 Excel 2013을 할 수 .encodeurl(url)기능.

예

출처: http://versitas.com/blog/two-easy-ways-to-encode-urls-in-excel/

을 그런다을된인다수있 URL로 할 수 .hyperlink(link_location,[friendly_name])보다 읽기 쉬운 URL을 표시하는 함수입니다.

보고서를 Outlook의 새 메시지에 붙여 넣었더니 하이퍼링크가 정상적으로 작동했습니다.Word에 붙여넣을 때도 작동하지 않았고 Outlook에서 Excel에 다시 붙여넣지도 않았습니다.(세 가지 앱 모두에 Office Professional Plus 2010 사용).

저는 나중에 기본 브라우저와 관련하여 위의 제안을 따랐습니다.크롬을 기본값으로 설정했습니다.그런 다음 크롬을 닫았습니다.그런 다음 IE에 들어가 기본값으로 설정했습니다.재부팅 안 함.링크가 작동했습니다.

나는 IE를 사용하여 URL에 #가 포함된 링크된 웹사이트를 열 수 없는 사용자가 있었습니다.그녀는 크롬과 파이어폭스로 시작할 수 있었습니다.다른 것들은 IE, Chrome, Firefox로 열 수 있습니다.

http_user_agent value my version을 조사한 결과 HTTP_USER_AGENT=Domino/4.0(호환 가능, MSIE 7.0, Windows NT 6.1, WOW64, Trident/6.0, SLCC2)이 발견되었습니다.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET 4.0C; .NET 4.0E; InfoPath.3)

나는 그녀의 버전이 다음과 같은 가치를 가지고 있다는 것을 발견했습니다.

HTTP_USER_AGENT=Domino/5.0(호환 가능, MSIE 10.0, Windows NT 6.1, WOW64, Trident/6.0)

키 구문은 호환됩니다. MSIE 10.0(내 항목 읽기 호환, MSIE 7.0).IE Developer Tools를 열었을 때 브라우저의 기본 Document Standards 설정이 IE7 Standards였습니다.그녀의 브라우저의 기본 설정은 IE10 표준이었습니다.그녀가 문서 설정을 IE7 표준으로 변경하고 브라우저를 닫은 다음 Excel에서 링크를 클릭하면 IE에서 페이지가 올바르게 열립니다.

우리 회사 환경에서는 IE를 기본 브라우저로 사용하고 호환성 보기는 기본적으로 설정되어 있지만 어떻게든 설정이 변경되었습니다.향후 URL에서 해시(#)가 문제가 될 수 있음을 공정하게 경고합니다.

이것은 정말 귀찮지만 간단한 해결 방법이 있습니다. #과 함께 URL을 사용하지 말고 https://goo.gl/ 과 같은 URL 단축 서비스를 사용하십시오.

Excel은 하이퍼링크에서 '#' 기호를 볼 때마다 일종의 상대적 참조 또는 '마법적 해시'로 해석하려고 합니다.다음을 참조하십시오. http://www.myonlinetraininghub.com/excel-factor-18-dynamic-hyperlinks-and-the-magic

그러나 이 고급 Excel 기능을 사용할 의도가 없이 하이퍼링크에 '#' 기호가 있으면 좋지 않습니다.당신은 무엇을 할 수 있나요?

엑셀이 하이퍼링크를 만들 때마다 '#'을 '마법의 #'로 해석하는 것 같습니다.그러나 Excel의 객체 모델 내에서 하이퍼링크를 만들거나 Excel의 객체 모델에서 기존 하이퍼링크의 주소를 수정하는 경우 일반적으로 문제가 있는 Excel, MS Word 또는 기타 MS Office 응용 프로그램에 마법이 아닌 #를 포섭할 수 있습니다.

저는 A열에 파운드 기호가 포함된 주소(텍스트만 해당)로 가득 찬 시트에 대해 자동으로 이를 수행하는 Excel 코드를 만들었습니다. 이 코드는 B열을 새로운 작동 하이퍼링크로 채웁니다.저는 이 하이퍼링크를 Word와 Outlook에 성공적으로 붙여넣을 수 있었습니다.

Sub Make_Column_A_into_hyperlinks_hashmarkworkaround()

    'Column "A" contains the text of links to some files.
    'This subroutine will turn those cells into Excel hyperlinks...
    '...and then correct the hyperlinks in case Excel misinterpreted
    'a # mark which had originally occurred in the filename.
    'Because I'm using selection.End(xlDown).Select to find the complete list,
    'this program does not tolerate any blanks in the "A" column list.
    'Note that I don't add a hyperlink in Row 1.

    Dim A As Object
    Dim lngRow As Long
    Dim Height As Long

    With ActiveSheet
        .Cells(1, 1).Select
        Selection.End(xlDown).Select
        Height = Selection.Row

        For lngRow = 2 To Height
            .Hyperlinks.Add Anchor:=ActiveSheet.Cells(lngRow, 2), Address:=Chr(34) & _
                ActiveSheet.Cells(lngRow, 1).Value & Chr(34), TextToDisplay:="Open", _
                ScreenTip:=Chr(34) & ActiveSheet.Cells(lngRow, 1).Value & Chr(34)
        Next

        For Each A In ActiveSheet.Hyperlinks

            If A.ScreenTip <> "" Then
                If InStr(1, A.ScreenTip, "#") <> 0 Then
                    A.Address = Mid(A.ScreenTip, 2, Len(A.ScreenTip) - 2)
                End If
            End If

        Next
    End With

End Sub

VBA를 사용하여 IE 창에서 해당 주소로 URL을 열려면 아래 스레드를 사용해 보십시오.

VBA를 사용하여 URL을 활성 IE 창으로 보내기

아래의 예:

Dim IE As Object
Dim objCollection As Object

' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")

' Send the form data To URL As POST binary request
IE.Navigate "https://YOURURL/niku/nu#action:projmgr.projectDefaultTab&id=5558967"

' Clean up
Set IE = Nothing

이것이 나처럼 당신에게도 효과가 있기를 바랍니다.아미케이

레지스트리 항목을 수동으로 변경하지 않고 Internet Explorer를 기본 브라우저로 재설정하는 것이 가장 좋은 해결 방법입니다.이렇게 하면 URL, 프로토콜 및 확장 연결이 재설정되고 문제가 해결됩니다.

에 가다Control Panel -> All Control Panel Items -> Default Programs -> Set Default Programs를 선택합니다.Setup Internet Explorer as Default Browser.

모든 Internet Explorer 탭을 닫고 다시 시도합니다.

언급URL : https://stackoverflow.com/questions/25070176/hyperlink-changes-from-to-20-20-when-clicked-in-excel

반응형