Ο Dan από τη Wauconda έθεσε την ερώτηση Excel αυτής της εβδομάδας.
Έχω ένα φύλλο εργασίας του Excel που υπολογίζει μια τιμή. Εάν η τιμή του κελιού είναι> 100, χρειάζομαι ένα αρχείο midi για αναπαραγωγή.

Αυτή η συμβουλή χρησιμοποιεί τους χειριστές των εκδηλώσεων που συζητήθηκαν εδώ στις 23 Δεκεμβρίου. Εάν δεν είστε εξοικειωμένοι με τους χειριστές συμβάντων, διαβάστε πρώτα αυτήν τη συμβουλή.
Το πρώτο βήμα είναι να επικολλήσετε ένα αντίγραφο του αρχείου MIDI σε ένα σημείο εκτός δρόμου στο φύλλο εργασίας σας.
- Ανοίξτε το πρόγραμμα αναπαραγωγής πολυμέσων WIN95. Προγράμματα> Αξεσουάρ> Πολυμέσα
- Ανοίξτε το επιλεγμένο αρχείο midi στη συσκευή αναπαραγωγής πολυμέσων.
- Στο πρόγραμμα αναπαραγωγής πολυμέσων, επιλέξτε Επεξεργασία και, στη συνέχεια, Αντιγραφή αντικειμένου.
- Στο Excel, βρείτε μια εκτός δρόμου τοποθεσία. Σε αυτό το παράδειγμα, επιλέγω το Sheet1 Cell Z99. Κάντε κλικ εδώ και, στη συνέχεια, πατήστε Επεξεργασία> Επικόλληση
- Κοιτάξτε το πλαίσιο ονόματος στο Excel. Στο πλαίσιο ονόματος, θα δώσει ένα όνομα στο αρχείο midi. Το δικό μου ονομάζεται Object 1.
Η μακροεντολή VBA για την αναπαραγωγή αυτού του αρχείου midi είναι:
Sub Playit() ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End Sub
Ανάλογα με το εάν έχετε Excel 97 ή Excel 95 / 7.0, θα χρησιμοποιούσατε τον κατάλληλο χειριστή συμβάντων για να καλέσετε τον παραπάνω κώδικα. Ακολουθεί ένα παράδειγμα για το Excel 97. Ας υποθέσουμε ότι εάν εισαχθεί μια νέα τιμή στο κελί A1, θέλετε να ελέγξετε εάν το υπολογισμένο κελί στο A2 είναι> 100. Ο χειριστής συμβάντων έχει ως εξής:
Ανοίξτε το πρόγραμμα επεξεργασίας της Visual Basic. Στο αριστερό παράθυρο, κάντε δεξί κλικ στο φύλλο 1 και επιλέξτε Προβολή κώδικα. Στην κορυφή του παραθύρου διαλόγου Κωδικός Book1 - Sheet1, υπάρχουν δύο αναπτυσσόμενα μενού. Από το αριστερό αναπτυσσόμενο μενού επιλέξτε Φύλλο εργασίας. Από το δεξί αναπτυσσόμενο μενού, επιλέξτε Αλλαγή. Εισαγάγετε τις ακόλουθες γραμμές κώδικα:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then If Range("A2")> 100 Then ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End If End If End Sub