Cum să redați un sunet dacă o condiție este îndeplinită în Excel?
În Excel, putem aplica formatarea condițională pentru formatare și evidenția celulele pentru a îndeplini condiția după cum aveți nevoie, dar, uneori, poate doriți să redați un sunet dacă este îndeplinită o condiție. De exemplu, dacă valoarea celulei din A1 este mai mare de 300, vreau să se redea un sunet. Excel nu acceptă această caracteristică, în acest articol, voi introduce câteva coduri VBA pentru a rezolva această sarcină.
Redați un sunet sonor implicit al sistemului pe baza valorii celulei cu codul VBA
Redați un sunet personalizat pe baza valorii celulei cu codul VBA
Redați un sunet dacă valoarea celulei se schimbă într-o anumită coloană cu cod VBA
Redați un sunet sonor implicit al sistemului pe baza valorii celulei cu codul VBA
Iată un cod la îndemână pentru a reda un sunet sonor implicit al sistemului atunci când este îndeplinită o anumită condiție.
1. Țineți apăsată tasta ALT + F11 , apoi deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.
2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.
Cod VBA: redați un sunet de sistem implicit pe baza unei valori a celulei:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Apoi salvați și închideți această fereastră de cod, reveniți la foaia de lucru și introduceți această formulă: = IF (A1> 300, BeepMe (), "") într-o celulă goală de lângă celulă conține valoarea pe care doriți să redați un sunet, apoi apăsați Intrați tasta, nimic nu va fi afișat în celula formulă, consultați captura de ecran:
4. Și acum, dacă valoarea introdusă în celula A1 este mai mare de 300, va fi redat un sunet de sistem implicit.
Redați un sunet personalizat pe baza valorii celulei cu codul VBA
Dacă doriți să redați alt sunet decât sunetul sonor implicit al sistemului, aici și un cod VBA vă poate face o favoare.
1. Țineți apăsat butonul ALT + F11 , apoi deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.
2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.
Cod VBA: redați un sunet specific bazat pe valoarea unei celule:
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Speech On.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
3. Apoi salvați și închideți această fereastră de cod, reveniți la foaia de lucru și introduceți această formulă: = IF (A1> 300, SoundMe (), "")într-o celulă goală de lângă celulă conține valoarea pe care doriți să redați un sunet, apoi apăsați Intrați tasta, nimic nu va fi afișat în celula formulă, consultați captura de ecran:
4. De acum înainte, dacă o valoare mai mare de 300 este introdusă în celula A1, un sunet specific va fi redat simultan.
notițe: În codul de mai sus, puteți schimba fișierul wav de sunet în funcție de nevoile dvs. c: \ windows \ media \ calea fișierului. Vedeți captura de ecran:
Redați un sunet dacă valoarea celulei se schimbă într-o anumită coloană cu cod VBA
Dacă doriți să redați un sunet dacă valoarea celulei se schimbă într-o anumită coloană, puteți aplica următorul cod VBA.
1. Faceți clic dreapta pe fila de foaie pe care doriți să redați un sunet atunci când valoarea se schimbă într-o coloană, apoi alegeți Afișați codul din meniul contextual și în meniul deschis Microsoft Visual Basic pentru aplicații fereastră, copiați și lipiți următorul cod în modulul gol:
Cod VBA: redați un sunet dacă valoarea celulei se schimbă într-o coloană:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161223
Dim xCell As Range
On Error Resume Next
If Target.Columns.Count = 1 Then
If Intersect(Target, Columns(3)) Is Nothing Then
Exit Sub
Else
For Each xCell In Columns(3)
On Error Resume Next
If (xCell.Value = Target.Value) And (xCell.Value <> "") Then
Beep
Exit For
End If
Next
End If
End If
End Sub
notițe: În codul de mai sus, numărul 3 în scenariu Coloane (3) este numărul coloanei pe care doriți să redați sunetul atunci când valoarea se schimbă în această coloană.
2. Și apoi salvați și închideți această fereastră de cod, acum, dacă o valoare a celulei se schimbă în a treia coloană, va fi redat un sunet de sistem implicit.
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!