Excel me dit que mes cellules Vierges ne sont pas vides
donc dans excel j'essaye de me débarrasser des cellules Vierges entre mes cellules qui ont des informations en elles en utilisant F5 pour trouver les cellules Vierges, puis Ctrl + - pour les supprimer, et déplacer les cellules vers le haut. Mais quand j'essaie de le faire, ça me dit qu'il n'y a "aucune cellule trouvée".
j'ai remarqué que si je sélectionne ma 'vide' cellules, Excel compte: ce qui est étrange. Mais si J'appuie sur Delete sur les cellules sélectionnées, le compte disparaît, et je peux passer F5, blancs, Ctrl + - et déplacer les cellules, et ça marche...
alors ma question Est Comment puis-je encore faire cela, mais avec ces cellules Vierges que Excel pense ne sont pas vides? J'ai essayé de passer et d'appuyer sur Supprimer au-dessus des cellules Vierges, mais j'ai beaucoup de données et j'ai réalisé que ça me prendrait beaucoup trop de temps. je dois trouver un moyen de sélectionner ces cellules "Vierges" dans une sélection de données.
Merci d'avance pour votre aide! :)
15 réponses
Une révélation: certaines cellules Vierges ne sont pas en fait vides! Comme je le montrerai, les cellules peuvent avoir des espaces, de nouvelles lignes et de vrais vides:
Pour trouver ces cellules rapidement, vous pouvez faire quelques choses.
=CODE(A1)
formule renvoie un #VALEUR! si la cellule est vraiment vide, sinon, un numéro de retour. Ce nombre est le numéro ASCII utilisé dans=CHAR(32)
.- Si vous sélectionnez la cellule, cliquez sur dans la barre de formule et utilisez le curseur pour sélectionner tous.
Suppression de ces:
si vous avez seulement espace dans les cellules ceux-ci peuvent être enlevés facilement en utilisant:
- Appuyez sur ctrl + h pour ouvrir rechercher et remplacer.
- entrez un espace dans le trouver, laissez remplacer par vide et vous assurer que vous avez correspondent au contenu entier de la cellule est cochée dans les options.
- Appuyez sur remplacer tous les.
Si vous avez des retours à la ligne c'est plus difficile et nécessite VBA:
- clic droit sur l'onglet Feuille > voir le code.
entrez alors le code suivant. Rappelez-vous l'
Chr(10)
est une nouvelle ligne uniquement remplacer ce que nécessaire, par exemple," " & Char(10)
est un espace et un de retour à la ligne:Sub find_newlines() With Me.Cells Set c = .Find(Chr(10), LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = "" Set c = .FindNext(c) If c Is Nothing Then Exit Do Loop While c.Address <> firstAddress End If End With End Sub
maintenant exécutez votre code en appuyant sur F5.
après le fichier fourni: sélectionnez la plage d'intérêt pour une meilleure performance, puis lancez ce qui suit:
Sub find_newlines()
With Selection
Set c = .Find("", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = ""
Set c = .FindNext(c)
If c Is Nothing Then Exit Do
Loop While c.Address <> firstAddress
End If
End With
End Sub
une façon simple de sélectionner et de vider ces cases vides pour les rendre vides:
- Appuyez sur ctrl + a ou de pré-sélectionner votre plage
- Appuyez sur ctrl + f
- Quitter trouver vide et sélectionnez correspondent au contenu entier de la cellule.
- appuyez sur trouver tous
- Appuyez sur ctrl + a pour sélectionner toutes les cellules vides trouvé
- Fermer le trouver boîte de dialogue
- Appuyez sur retour arrière ou supprimer
Cela a fonctionné pour moi:
- CTR-H pour afficher le trouver et remplacer
- quitter 'Rechercher' vide
- changez 'Replace with' en un texte unique, quelque chose que vous êtes
positif ne sera pas trouvé dans une autre cellule (j'ai utilisé 'xx') - cliquez sur 'Remplacer Tout'
- copier le texte unique à l'étape 3 pour 'trouver quoi'
- supprimer le texte unique dans "Remplacer par"
- cliquez sur " Remplacer Tous les'
j'ai eu un problème similaire lorsque des cellules Vierges dispersées provenant d'une exportation d'une autre application apparaissaient encore dans le nombre de cellules.
j'ai réussi à les effacer par
- sélectionner les colonnes / lignes que je voulais nettoyer, puis faire
- "Trouver" [aucun texte] et "Remplacer" [mot de choix].
- puis j'ai "trouvé" [mot de choix] et "remplacé" par [Pas de texte].
il s'est débarrassé de tous les caractères cachés/fantômes dans ces cellule. Peut-être que cela fonctionnera pour vous?
tout, c'est assez simple. J'ai essayé pour la même chose et c'est ce qui a fonctionné pour moi dans VBA
Range("A1:R50").Select 'The range you want to remove blanks
With Selection
Selection.NumberFormat = "General"
.Value = .Value
End With
ce qui Concerne, Anand Lanka
Si vous n'avez pas de formatage ou de formules que vous voulez garder, vous pouvez essayer de sauvegarder votre fichier comme un fichier texte délimité par un onglet, de le fermer et de le rouvrir avec excel. Cela a fonctionné pour moi.
'Select non blank cells
Selection.SpecialCells(xlCellTypeConstants, 23).Select
' REplace tehse blank look like cells to something uniqu
Selection.Replace What:="", Replacement:="TOBEDELETED", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'now replace this uique text to nothing and voila all will disappear
Selection.Replace What:="TOBEDELETED", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Trouvé un autre moyen. Ensemble de filtre automatique pour colonnes (important ou vous allez mal ajuster les données) en sélectionnant la ligne d'en - tête > onglet "Données" > Trier et filtrer - "filtrer". Utilisez la liste déroulante dans la première colonne de données, untick 'Select all 'et select only' (Blanks) ' option > [OK]. Mettre en surbrillance les lignes ( maintenant toutes ensemble) > clic droit > "supprimer la ligne". Retourner à la liste déroulante > "Sélectionner tout". Presto:)
Je ne suis pas sûr si cela a déjà été dit, mais j'ai eu un problème similaire avec les cellules ne montrant rien en elles, mais ne pas être vide quand vous exécutez la formule IsBlank ().
j'ai sélectionné la colonne entière, sélectionné Find & Replace, trouvé des cellules sans rien et remplacé par un 0, puis j'ai couru find and replace, trouver des cellules avec 0 et remplacer par "".
cela a résolu mon problème et m'a permis de chercher des cellules Vierges (F5, spécial, blancs) et supprimer des lignes qui étaient vide....BOOM.
Peut ne pas fonctionner pour chaque application, mais cela a résolu mon problème.
parfois, il y a des espaces dans les cellules qui semblent vides, mais si vous appuyez sur F2 sur la cellule, vous verrez des espaces. Vous pouvez également effectuer une recherche de cette façon, si vous connaissez le nombre exact de places dans une cellule
cela fonctionne avec les nombres.
si votre intervalle est O8:O20, alors dans un intervalle vide proche (par exemple T8:T20) entrez =O8/1 et remplissez. Cela vous donnera un résultat de valeur #pour les cellules 'vides' et votre nombre original restera comme il était.
alors avec la gamme T8:20 sélectionnée (CTL-* si elle n'est pas déjà) appuyez sur F5 et choisissez spécial. À partir du dialogue spécial, choisissez erreurs et cliquez sur OK. Cela va désélectionner vos nombres réels en ne laissant que les cellules #VALUE sélectionnées. Supprimez-les et vous aurez réelle des cellules vides. Copier T8:T20 et coller sur O8: O20.
essentiellement, puisque les cellules Vierges ne fonctionnent pas, vous devez convertir les cellules "vides" en quelque chose que le Go to Special peut s'accrocher. Toute action qui se convertirait en #VALUE fonctionnerait, et d'autres types d' "erreurs" devraient également être pris en charge.
ma méthode est similaire à la suggestion de Curt ci-dessus à propos de la sauvegarde en tant que fichier délimité par des onglets et de la réimportation. Il suppose que vos données ont des valeurs sans formules. C'est probablement une bonne hypothèse parce que le problème des "mauvaises" blancs est causé par la confusion entre les blancs et les nuls -- généralement dans les données importées d'un autre endroit -- donc il ne devrait pas y avoir de formules. Ma méthode est d' parse en place -- très similaire à l'enregistrement en tant que fichier texte et de les ré-importer, mais vous pouvez le faire sans fermer et rouvrir le dossier. C'est en vertu de Données > Texte en Colonnes > délimité > tout supprimer à l'analyse des caractères (pouvez également choisir de Texte si vous le souhaitez) > Terminer. Cela devrait amener Excel à re-reconnaître vos données à partir de zéro ou de texte et de reconnaître les blancs comme vraiment Vierges. Vous pouvez automatiser cela dans un sous-programme:
Sub F2Enter_new()
Dim rInput As Range
If Selection.Cells.Count > 1 Then Set rInput = Selection
Set rInput = Application.InputBox(Title:="Select", prompt:="input range", _
Default:=rInput.Address, Type:=8)
' Application.EnableEvents = False: Application.ScreenUpdating = False
For Each c In rInput.Columns
c.TextToColumns Destination:=Range(c.Cells(1).Address), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Next c
Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub
Vous pouvez également activer cette ligne commentée pour faire tourner ce sous-programme "en arrière-plan". Pour ce sous-programme, il améliore des performances légèrement (pour les autres, il peut vraiment aider beaucoup). Le nom est F2Enter parce que la méthode manuelle originale pour fixer ce problème "blancs" est de faire Excel reconnaître la formule en poussant F2 et entrer.
Voici comment j'ai résolu ce problème sans codage.
- sélectionnez la colonne entière dans laquelle je voulais supprimer les cellules "vides".
- cliquez sur L'onglet formatage conditionnel en haut.
- Sélectionnez "Nouvelle Règle".
- cliquez sur "Formater uniquement les cellules qui contiennent".
- changer "entre" en "égal à".
- Cliquez sur la case à côté de "l'égalité" de la boîte.
- cliquez sur une des cellules "vierges" du problème.
- Cliquez sur le Bouton Format.
- choisir une couleur au hasard pour remplir la case.
- appuyez sur "OK".
- cela devrait changer toutes les cellules "vierges" du problème à la couleur que vous avez choisi. Maintenant, cliquez avec le bouton droit de la souris sur l'une des cellules colorées, et allez à "trier" et "mettre la couleur de la cellule sélectionnée sur le dessus".
- Cela permettra de mettre toutes les cellules du problème en haut de la colonne et, maintenant, tous vos autres cellules vont rester dans l'ordre d'origine. Vous pouvez maintenant sélectionner tous les problème cellules dans un groupe et cliquez sur le bouton Supprimer la cellule sur le dessus pour se débarrasser d'eux.
la solution La plus simple pour moi a été de:
1)Sélectionnez la plage et copiez-la (ctrl+c)
2)Créer un nouveau fichier texte (n'importe où, il sera supprimé prochainement), ouvrez le fichier texte, puis le coller dans excel informations (ctrl+v)
3) Maintenant que L'information en Excel est dans le fichier texte, effectuez un select all dans le fichier texte (ctrl+a), puis copiez (Ctrl+c)
4) Aller au début de la gamme originale à l'étape 1, et coller sur ce vieux renseignements tirés de la copie de l'étape 3.
FAIT! Pas plus faux flans!! (vous pouvez maintenant supprimer le fichier texte temp)
Goto->Spécial>les blancs n'aiment pas les cellules fusionnées. Essayez de désassembler les cellules au-dessus de la plage dans laquelle vous voulez sélectionner des blancs puis essayez de nouveau.
j'ai eu un problème similaire avec obtenir la formule de COUNTA pour compter les cellules non-Vierges, il était en train de compter toutes les cellules (même les blancs comme non-Vierges), j'ai essayé =CODE() mais ils n'avaient pas d'espaces ou de nouvelles lignes.
j'ai constaté que lorsque je clique dans la cellule et clique ensuite de la formule compter de la cellule. J'avais des milliers de cellules donc je ne pouvais pas le faire manuellement. J'ai écrit cette déclaration VBA pour vérifier littéralement toutes les cellules et si elles étaient vides alors de les rendre vides. Ignorez l'inutilité de cette macro et croyez-moi que cela a réellement fonctionné en forçant Excel à reconnaître les cellules vides comme étant réellement vides.
'This checks all the cells in a table so will need to be changed if you're using a range
Sub CreateBlanks()
Dim clientTable As ListObject
Dim selectedCell As Range
Set clientTable = Worksheets("Client Table").ListObjects("ClientTable")
For Each selectedCell In clientTable.DataBodyRange.Cells
If selectedCell = "" Then
selectedCell = ""
End If
Next selectedCell
End Sub