Excel - Μια μακροεντολή για εργασίες πολλαπλών γραμμών

  • Θέμα
  • Λύση
  • Σημείωση

Θέμα

Έχω δύο ξεχωριστά βιβλία εργασίας που πρέπει να συγκρίνω. Η εργασία που βρίσκεται στο χέρι είναι ότι πρέπει να εντοπίσω ένα συγκεκριμένο κείμενο στο βιβλίο εργασίας 2 (col A) και έπειτα βρεθεί - τότε πρέπει να αντιγράψω τα επόμενα δύο κελιά / σειρές (col B και C) και να τα επικολλήσω στο wkbook 1 (col B και C) για κάθε μεμονωμένη σειρά για το κείμενο που βρέθηκε. Αυτά που δεν βρίσκονται, μπορούν να μείνουν μόνοι ή κενά.

Λύση

Μπορείτε να το χρησιμοποιήσετε:

 Dim mySearchText Καθορισμός ως wb1 ως βιβλιοθήκη εργασίας ως wb1 Ως βιβλίο εργασίας dim sh1, sh2 Καθορισμός wb1 = Βιβλίων εργασίας ("Βιβλίο1") wb2 = Βιβλία εργασίας ("Book2") Do While True mySearchText = InputBox (" για να κλείσετε τη λειτουργία. ", " Αναζήτηση ") Εάν (mySearchText =" ") Τότε βγείτε από το wb2.Activate wb2BRow = Κύτταρα (65536, 2) .End (xlUp) .Row wb2CRow = xlUp) .Row Εάν (wb2BRow> wb2CRow) Στη συνέχεια wb2row = wb2BRow Else wb2row = wb2CRow Τέλος Αν Εάν wb2row = 1 Στη συνέχεια wb2row = 2 wb1.Activate On Σφάλμα Επαναλάβετε Επόμενο Αν ActiveSheet.AutoFilterMode Στη συνέχεια Cells.Select Selection.AutoFilter End Αν Αν ActiveSheet .AutoFilterMode = Λάθος στη συνέχεια Γραμμές (1) .Επιλέξτε Selection.AutoFilter End Αν είναι σε σφάλμα GoTo 0 Field Selection.AutoFilter: = 1, Criteria1: = "=" & mySearchText, Operator: = xlAnd Dim lastRow Όπως Long last =, 1) .Εν (xlUp) .Row Αν (lastRow> 1) Στη συνέχεια το εύρος (Κύτταρα (2, 2), Κύτταρα (lastRow, 3)). .PasteSpecial wb2BRow = Κύτταρα (65536, 2) (xlUp) .Row wb2CRow = Κύτταρα (65536, 3) .End (xlUp) .Row Εάν (wb2BRow> wb2CRow) Στη συνέχεια wb2row = wb2BRow Else wb2row = wb2CRow Τέλος Αν wb2row = wb2row + 1 End If Loop 

Σημείωση

Χάρη στην rizvisa1 για αυτή την άκρη στο φόρουμ.

Προηγούμενο Άρθρο Επόμενο Άρθρο

Οι Καλύτερες Συμβουλές