2010-02-15 8 views
0

Je cherche à télécharger des tables de données à partir de sites Web dans Excel et à extraire des données spécifiques dans une feuille de travail distincte pour créer une base de données. J'ai de la difficulté à analyser les nombres qui sont importés dans une cellule dans Excel. Par exemple, les nombres "-7 -110" écrits exactement comme sur le site Web sont entrés dans une cellule dans Excel comme "= -7-110" donnant le contenu de la cellule "-117". Lorsque la cellule est en surbrillance, l'original = -7-110 s'affiche dans la barre de formule mais je ne sais pas a) saisir les données telles quelles et désactiver l'autoformatage par excel ou b) saisir le contenu de cellule spécifique sans que la formule soit formée à partir de la cellule.Web scraping dans VBA et Excel

Toute aide est appréciée - merci!

Jason

Répondre

2

Microsoft propose three methods contre-acte numéro intégré mise en forme:

Eviter Nombre de formatage automatique Si vous souhaitez saisir une valeur telle que 10e5, 1 p, ou 1 -2, et vous ne voulez pas la valeur à convertir en un nombre numérique intégré , tapez le nombre comme une valeur de texte. Pour saisir un nombre en tant que valeur de texte, utilisez l'une des méthodes appropriées ci-dessous.

Méthode 1
place un espace au début de l'entrée. REMARQUE: Cette méthode ne fonctionne pas si l'entrée ressemble à un nombre formaté en notation scientifique. Par exemple, taper 1e9 donne un nombre scientifique.

Méthode 2

  1. Sélectionnez une plage de cellules, puis cliquez sur Cellule dans le menu Format.
  2. Cliquez sur l'onglet Numéro.
  3. Cliquez sur Texte, puis sur OK.

Cette méthode vous permet de saisir des données dans les cellules sélectionnées sous forme de texte. Vous devez effectuer ces étapes avant de taper les nombres dans les cellules.

Méthode 3
précéder l'entrée avec une apostrophe.
Par exemple, tapez ce qui suit: '1 p

+0

Vous pouvez également ajouter l'apostrophe directement dans VBA. – guitarthrower

+0

@guitarthrower: merci d'avoir ajouté ça. – bernie

1

Adam a couvert les options si vous apportez des modifications dans le classeur.

Bien sûr, vous pouvez également préparer la zone dans laquelle les données sont importées directement à partir de VBA en utilisant le

.NumberFormat 
propriété

.

Pour définir la propriété NumberFormat d'une plage ou cellules/s « Texte » vous pouvez utiliser

.NumberFormat="@" 

Par exemple

Range("C:C").NumberFormat = "@" 

convertira toutes les cellules dans la colonne C « Texte » format.

En ce qui récupérer le « -7-110 » si elle est entrée dans une cellule avec le format général (et affiche le résultat de la formule-à-dire -117), vous pouvez accéder à la

.Formula 

propriété de la cellule.

Par exemple, si la formule ci-dessus est entré dans la cellule C1, le code VBA ci-dessous

Range("C1").Formula 

ou équivalente

Cells(1, 3).Formula 

renverrait la chaîne "= -7 à 110".