Effacer le contenu des cellules dans VBA en utilisant la référence de la colonne
Je suis en train d'essayer d'obtenir un morceau de code pour effacer les données dans certaines cellules, à l'aide de la colonne de références. Je suis en utilisant le code suivant:
Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents
Pour ce faire, cependant, je reçois un message d'erreur à la première .Les cellules de l'article, pourquoi est-ce?
source d'informationauteur dojogeorge
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à l'ensemble de la colonne comme une plage à l'aide de la
Worksheet.Columns
objetQuelque chose comme:
devrait effacer le contenu d'Une colonne
Il y a aussi le
Worksheet.Rows
objet si vous avez besoin de faire quelque chose de similaire pour les lignesL'erreur que vous recevez est probablement due à la disparition d'un bloc.
Vous pouvez lire à ce sujet avec des blocs ici: L'Aide De Microsoft
Comme Gary Étudiant mentionné, vous devez supprimer le point avant
Cells
pour rendre le code du travail que ce que vous avez écrit. Je ne peux pas en être sûr, puisque vous n'inclus une ligne de code, mais l'erreur que vous avez lorsque vous avez supprimé les points pourrait avoir quelque chose à voir avec la façon dont vous avez défini vos variables.J'ai couru votre ligne de code avec les variables définies comme des entiers et il a travaillé:
Je ne pense pas qu'un
With
déclaration est approprié à la ligne de code que vous avez partagée, mais si vous en utilisez un, leWith
serait au début de la ligne qui définit l'objet de la manipulation. Voici votre code réécrit à l'aide d'un inutileWith
déclaration:With
instructions sont conçues pour vous sauver de retaper le code et de rendre votre code plus facile à lire. Il devient utile et appropriée si vous n'avez plus qu'une chose à un objet. Par exemple, si vous souhaitez également mettre la colonne en rouge et ajouter une bordure noire épaisse, vous pouvez utiliser unWith
déclaration comme ceci:Sinon, vous devez déclarer la plage pour chaque action ou des biens, comme ceci:
J'espère que cela vous donne une idée de pourquoi Gary Étudiant en croit le compilateur peut s'attendre à un
With
(même si c'était inapproprié) et comment et quand unWith
peut être utile dans votre code.Je suis juste venu avec cette méthode très simple de compensation une feuille entière.
Pour quelqu'un comme moi, qui est venu à travers ce et besoin d'une solution qui n'est pas évident de les en-têtes, ici, c'est la seule ligne qui fonctionne pour moi:
Commence sur la troisième ligne de changement à votre goût.
Vous avez besoin d'un Avec déclaration préalable à l'. Ou faire de la .Les cellules en Cellules
Pour effacer toutes les lignes qui ont des données j'utilise deux variables comme ceci. J'aime cela parce que vous pouvez l'ajuster dans une certaine gamme de colonnes si vous en avez besoin.
Dim CRow As Integer
Dim LastRow As Integer
Le problème n'est pas avec l'instruction, c'est sur la Plage de fonction, il n'accepte pas l'absolu de la valeur de la cellule.. il doit être comme Range("A4:B100").. vous pouvez consulter le fil de discussion suivant pour référence..
code suivant devrait fonctionner..
Convertir les cellules(1,1) en "A1" et vice-versa
J'ai trouvé ce un moyen facile de nettoyage dans une forme entre la ligne et la colonne souhaitées. Je ne suis pas sûr si c'est ce que vous cherchez. Espérons que cela aide.