2009-06-24 8 views
0

J'ai un rapport Excel avec un tas de feuilles, chacune avec une table de données. J'ai besoin de créer un bouton qui va créer une page html contenant les tableaux, les uns après les autres. Je ne connais pas grand-chose au HTML, donc ma première approche a été d'avoir une macro qui crée une autre feuille de calcul avec les tables, et ensuite enregistre cette feuille en HTML en utilisant ActiveWorkbook.PublishObjects. Le problème est que je ne veux pas que les largeurs de colonnes soient les mêmes pour toutes les tables du fichier exporté.Ajout de fichiers html dans VBA

Je pense que la solution consiste à définir les largeurs de colonnes sur chaque feuille et à exporter les feuilles individuellement vers html, puis à les ajouter toutes dans un fichier html. Existe-t-il un moyen facile d'accomplir ceci, ou devrais-je écrire du code pour aller dans chaque fichier html et choisir les sections appropriées?

Répondre

2

Dans le numéro de Juin 2001 de VBPJ, j'ai écrit une colonne qui serait probablement un bon point de départ pour vous. Il a montré comment itérer à travers une gamme, en le convertissant en une table HTML, qui a ensuite été placé dans le presse-papiers pour être collé dans autre chose (par exemple, FrontPage). L'article:

Ask the VB Pro, June 2001: Soup Up Office VBA

Plus précisément, un coup d'oeil à la seconde Q/A pair, et offre 2 qui représente une fonction RangeToHtml(). Mon code supprime tout le formatage - c'était le but, pour moi. Je ne connais pas assez le modèle d'objet Excel pour le dire, mais j'imagine que vous pourriez intégrer des attributs width = dans le s si c'est important.

+0

Dans Excel, la propriété ColumnWidth de la cellule peut aider ici - par ex. Range ("A1"). ColumnWidth – barrowc

+0

Il m'a fallu un certain temps pour accepter le fait que j'aurais besoin de connaissances en html pour résoudre mon problème, mais construire le fichier à partir de rien est vraiment la meilleure solution. Merci! – Emily

+0

Le HTML est bon pour toi! Vous serez plus heureux une fois que vous connaissez ses bases. :-) –

Questions connexes