Excel converter intervalo para HTML? Excel 2010

1

Pretendo obter um intervalo de A1:I26 na folha "Desc" e convertê-lo para HTML. Esse HTML, em seguida, mostra na célula H2 na planilha "-Listings -"

As células no intervalo A1:I26 têm um gráfico com a formatação que quero manter (ou seja, estilo de fonte, cor, layout) Eu quero incluir os valores do texto, não as fórmulas por trás dele.

Aqui está uma captura de tela do que estou fazendo:

    
por Ryan Hubbard 25.06.2015 / 18:07

1 resposta

2

Eu descobri uma maneira de contornar isso. Em vez de usar um código VBA para converter um intervalo selecionado em HTML, eu usei uma rota alternativa usando fórmulas e um único código VBA.

A primeira coisa que fiz foi criar um Sheet5 , depois peguei os dados brutos em HTML da tabela que eu estava tentando replicar (mapeando as linhas Desc!1:16 para as colunas Sheet5!A:K ) e os dividi, colocando as quebras na código era eu iria inserir as novas informações. Peguei cada pedaço e colei em A2:K2 . Em seguida, peguei as informações que alterei manualmente e as vinculei ao meu livro em A4:K4 . (Estes estão usando links para células na minha página de registro que mudam com cada listagem que eu faço.)

Na célula L2 , eu coloquei a fórmula

=CONCATENATE(A2,A4,B2,B4,C2," ",C4,D2," ",D4,E2," ",E4,F2," ",F4,
                         G2," ",G4,H2," ",H4,I2," ",I4,J2," ",J4,K2)

(a quebra de linha é apenas para apresentação). Isso levou cada pedaço de HTML bruto e as informações do meu log e combinou-o mostrando um código HTML completo. Na célula C11 da minha planilha de registro, eu coloquei =Sheet5!$L$2 para mostrar os dados HTML na minha página principal para copiar e colar o valor.

Depois disso, notei que o Excel adicionaria aspas duplas a tudo o que já estava cotado e aspas simples para outras áreas. Depois de fazer algumas pesquisas, encontrei um código que copiava os valores de uma célula selecionada para que eu pudesse colar o código HTML sem aspas. Aqui está a macro que usei para isso:

Sub CopyCellContents()
    Range("C11").Select
    'create a reference in the VBE to Microsft Forms 2.0 Lib
    Dim objData As New DataObject
    Dim strTemp As String
    strTemp = ActiveCell.Value
    objData.SetText (strTemp)
    objData.PutInClipboard
End Sub

Eu usei a Pearson Software Consulting (ou seja, Chip Pearson) Usando o site Área de Transferência do Windows no VBA para a macro.

Encontrei um problema com os dados definidos pelo usuário. Para resolver isso, eu tive que sair do depurador de código, reabra o módulo com a macro, vá para “Ferramentas” → “Referências”, e, em seguida, navegue e digite FM20.DLL em “Nome do arquivo:”. Caso contrário, não consegui encontrar o “Microsoft Forms 2.0 Object Library” nas referências disponíveis.

Eu atribuí isso a um botão ao lado da célula C11 , e agora, quando eu clico nele, o código é copiado para minha área de transferência sem aspas. Isso não funciona exatamente do jeito que eu estava planejando originalmente, mas o resultado é exatamente o que eu queria. Espero que isso ajude alguns outros.

Veja algumas capturas de tela do que realizei:

Aqui é onde eu precisava do código para cada listagem. Sheet5 são os dados brutos divididos em células.

Aquiestáoprodutoacabadocriadoporessasfórmulas.Eháminhapáginaderegistrocomobotão.Quandoclicado,copiaocódigonacaixaàdireitasemaspas.

    
por 23.07.2015 / 14:50