Como abrir o hiperlink em uma planilha e salvar a pasta de imagens

0

Como faço para abrir hiperlinks em uma planilha e salvar cada imagem em uma pasta diferente?

Estou trabalhando no Excel. Eu tenho 7 folhas de 1000 registros cada.

Em cada folha há oito colunas de hiperlinks (o URL dos hiperlinks contém links para imagens). O hiperlink de cada registro deve ser aberto em janelas separadas.

Agora, estou usando este script para abrir todos os hiperlinks de uma só vez.

Sub OpenHyperLinks()
'Update 20141124
    Dim xHyperlink As Hyperlink
    Dim WorkRng As Range
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    For Each xHyperlink In WorkRng.Hyperlinks
        xHyperlink.Follow
    Next
End Sub

Eu posso abrir todos os hyperlinks de uma só vez, mas eu realmente quero abrir janelas de cromo separadas para cada linha / registro para que eu possa salvar a imagem de cada registro em pastas separadas.

Veja a imagem a seguir. Eu quero abrir o registro 10 em uma janela, 11 em outra janela e assim por diante.

    
por 6T18 28.10.2017 / 19:11

1 resposta

3

Tente este código. Funcionou no meu Windows 7 64 Bit com o Chrome versão 62.0.3202.75.

Normalmente, o Chrome abre os URLs subsequentes em uma nova guia, em vez de uma nova janela. Portanto, talvez você não consiga controlar esse comportamento se usar o método Hyperlink.Follow no seu VBA. O truque é chamar uma nova instância do Google Chrome usando a função Shell depois que cada linha é processada para que os URLs subsequentes sejam abertos nessa nova instância e assim por diante.

Embora esse código tenha funcionado no meu final, ele pode ou não funcionar exatamente como esperado, sujeito às versões do Windows OS / Chrome e à maneira como ele foi projetado. Então experimente e relate.

Além disso, o uso do Shell pode acelerar um pouco a abertura de URL e, ainda mais importante, o Chrome ainda abrirá uma URL de texto válida, mesmo que não seja realmente resolvida como URL no documento do Excel.

  Sub OpenHyperLinks()
    On Error Resume Next
    Dim xHyperlink As String
    Dim WorkRng As Range
    Dim cell As Range
    Dim counter As Integer
    Dim col_counter As Integer
    Dim row_counter As Integer
    Dim pHandle
    Const Chrome_Path = "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe"
    'Set above Constant Chrome_Path to match  Chrome.exe location on your PC
    counter = 0
    row_counter = 0
    Set WorkRng = Application.InputBox("Select Range", Type:=8)
    If WorkRng.Rows.Count = 0 Then
        Exit Sub
    End If
    col_counter = WorkRng.Columns.Count
    For Each cell In WorkRng
        If counter = 0 Then
            pHandle = Shell(Chrome_Path)
        End If
        xHyperlink = cell.Value
        If xHyperlink = "" Then
        Else
            pHandle = Shell(Chrome_Path & " -url " & xHyperlink)
        End If
        counter = counter + 1
        If counter = col_counter Then
           counter = 0
        End If
    Next
End Sub

Não há muita validação no código. Apenas no caso de você cancelar no InputBox, o sub sai como não há nada para processar e no caso de hiperlink está em branco, ele será ignorado. Defina a constante do Chrome_Path para corresponder à localização do Chrome.exe no seu PC, caso esteja instalado em uma pasta / partição diferente no seu PC.

Se você tiver centenas de URLs para processar, isso poderá atrasar seu computador, embora várias instâncias do Chrome devam ocupar a memória. Como alternativa, você pode pausar depois de cada registro usando MsgBox ou mais e fechar manualmente a instância aberta do Chrome depois que o trabalho com ele for concluído.

    
por 29.10.2017 / 01:55