Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 63696 Skopiuj do schowka Hiperłącze do pliku, którego ścieżka jest w schowku
Autor Wiadomość
Poznaniak
świeżak


Posty: 5
Wysłany: 06-01-2019, 01:50   Hiperłącze do pliku, którego ścieżka jest w schowku

Dzień dobry,

proszę o pomoc w znalezieniu błędu.

Makro ma tworzyć w aktywnej komórce przy pomocy formuły hiperłącze do pliku, którego ścieżka znajduje się w schowku systemowym.

Poprzez Tools/References aktywowałem Microsoft Forms 2.0 Object Library.

Makro działa, ale tekst w komórce jest podzielony na trzy wiersze. Tak jakby po każdym wystąpieniu ścieżki w hiperłączu był dodatkowo wstawiany enter. Jaka jest przyczyna tego stanu rzeczy?

Kod:
Sub PasteAsHyperlink()
   
    Dim CopiedData As New DataObject
    Dim Path As String
   
    CopiedData.GetFromClipboard
    Path = CopiedData.GetText
    ActiveCell.Formula = "=HYPERLINK(""" & Path & """ , """ & Path & """)"
       
End Sub


Pozdrowienia!
ID posta: 359782 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1230 razy
Posty: 4257
Wysłany: 06-01-2019, 02:30   

Pisałem w notatniku: D:\Moje dokumenty\Moje obrazy\czajka1.jpg -> zaznaczyłem -> kopiowałem do Schowka -> uruchomiłem podany kod. I mam ładny link.

A Ty skąd i jak kopiowałeś do Schowka? Jaka była postać skopiowanego tekstu?
ID posta: 359783 Skopiuj do schowka
 
 
ąćęłńóś
ExcelSpec


Pomógł: 186 razy
Posty: 847
Wysłany: 06-01-2019, 02:44   

Może tak:
Kod:
Option Explicit

Sub PasteAsHyperlink_1()
    Dim schowek As New MSForms.DataObject
    Dim tekst As String
   
    schowek.GetFromClipboard
    tekst = schowek.GetText
    ActiveCell.Formula = _
    "=HYPERLINK(" & Chr(34) & tekst & Chr(34) & "," & Chr(34) & "Ścieżka do pliku" & Chr(34) & ")"
End Sub
ID posta: 359785 Skopiuj do schowka
 
 
Poznaniak
świeżak


Posty: 5
Wysłany: 06-01-2019, 17:04   

apollo,

faktycznie, Twoją metodą wszystko ładnie działa.

Ja miałem link wprowadzony w komórce w excelu i kopiowałem komórkę. Myślałem, że GetText sobie z tym poradzi, ale widocznie nie. W takim razie nie był to chyba nawet schowek systemowy?

Problem polega na tym, że w mojej pracy co najmniej kilkanaście razy dziennie tworzę linki do różnych plików kopiując ścieżki z różnych źródeł (ale najczęściej po prostu wciskam shift, klikam prawym przyciskiem na plik i wybieram opcję "Kopiuj jako ścieżkę". Wtedy ścieżka jest skopiowana w cudzysłowie, ale z tym powinienem sobie szybko poradzić.

Chcę napisać uniwersalne makro, które stworzy hiperłącze na podstawie ścieżki z dowolnego źródła.

Nieco zmodyfikowałem kod, używając Chr(34), z makra ąćęłńóś. Teraz jest chyba nieco bardziej przejrzyste.

Kod:
Option Explicit

Sub PasteAsHyperlink()
   
    Dim CopiedData As New DataObject
    Dim Path As String
   
    CopiedData.GetFromClipboard
    Path = CopiedData.GetText
    ActiveCell.Formula = "=HYPERLINK(" & Chr(34) & Path & Chr(34) & "," & Chr(34) & Path & Chr(34) & ")"
       
End Sub


Pozdrawiam!
ID posta: 359812 Skopiuj do schowka
 
 
Poznaniak
świeżak


Posty: 5
Wysłany: 07-01-2019, 01:23   

Wyjaśniło się, po skopiowaniu komórki, w zmiennej string faktycznie był na końcu enter w postaci Chr(10) i Chr(13). Może komuś przyda się kiedyś całość:

Kod:
Option Explicit

Sub PasteAsHyperlink()
   
    Dim CopiedData As New DataObject
    Dim Path As String
    Dim PathLength As Byte
   
    CopiedData.GetFromClipboard
    Path = CopiedData.GetText
   
    PathLength = Len(Path)
   
    If Right(Path, 2) = Chr(13) & Chr(10) Then
        Path = Left(Path, PathLength - 2)
    End If

    ActiveCell.Formula = "=HYPERLINK(" & Chr(34) & Path & Chr(34) & "," & Chr(34) & Path & Chr(34) & ")"
       
End Sub


Pozdrawiam!
ID posta: 359875 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe