2013-09-05 3 views
-1

J'ai besoin d'aide pour le développement de VBA Macro for Excel 2013. Je travaille avec de gros fichiers de données créés après l'exécution d'une macro de requête pour obtenir des données d'un serveur SQL. Le fichier de données généré par le fichier de requête a toujours une date: horodatage dans la colonne A, et les résultats des autres colonnes (étiquettes prédéfinies par l'utilisateur) la date: l'horodatage est essentiel car le fichier de données est utilisé par une autre application analyser et générer des rapports. Le fichier de données brutes contient parfois une valeur "0" dans certaines lignes. Une macro est exécutée pour supprimer les valeurs "0" et copier la valeur ci-dessus.Macro à supprimer Les lignes contenant # N/A

1er scénario

1er problème est, où les données ne sont pas disponibles pour une date: heure la fiche de données affiche # N/A dans les cellules. Parfois, des lignes complètes affichent # N/A, avec l'horodatage dans la colonne A. Une macro est ensuite exécutée pour supprimer # N/A de la feuille. La feuille doit ensuite être manipulée manuellement pour supprimer les lignes sans valeurs sauf l'horodatage. J'ai besoin d'aide avec une macro pour supprimer les lignes vides sauf pour la colonne A avec la date: l'horodatage, les lignes complètes doivent être supprimées.

2ème scénario

Parfois # N/A sera dans une cellule de la colonne avec les valeurs ci-dessus, au-dessous, à gauche et à droite de la cellule, ce # N/Une ligne ne doit pas être supprimé mais il doit être valeur ci-dessus en raison du calcul des autres données d'application.

La manipulation manuelle des feuilles de données prend beaucoup de temps, après que les fichiers ont été corrigés, elle est sauvegardée en tant que "csv" et importée dans l'autre application. J'ai essayé beaucoup de macros conditionnelles mais pas de chance.

Y at-il quelqu'un qui peut aider

je vais grandement apprécier toute aide.

+1

Les questions demandant le code doivent démontrer une compréhension minimale du problème à résoudre. Inclure les solutions essayées, pourquoi elles n'ont pas fonctionné, et les résultats attendus. –

Répondre

0

Ceci est une solution partielle. La macro suivante supprimera toutes les lignes dont la seule valeur se trouve dans la colonne A:

Sub RowKiller() 
    Dim N As Long, NN As Long 
    Dim r As Range 
    NN = Cells(Rows.Count, "A").End(xlUp).Row 
    Dim wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    For N = NN To 1 Step -1 
     Set r = Cells(N, "A") 
     If wf.CountA(r) = 1 And wf.CountA(r.EntireRow) = 1 Then 
      r.EntireRow.Delete 
     End If 
    Next N 
End Sub 
Questions connexes