Как да възпроизведа звук, ако е изпълнено условие в Excel?
В Excel можем да приложим условното форматиране, за да форматираме и маркираме клетките, за да отговарят на условието, както ви е необходимо, но понякога може да искате да пуснете звук, ако дадено условие е изпълнено. Например, ако стойността на клетка в A1 е по-голяма от 300, искам да се възпроизведе звук. Excel не поддържа тази функция, в тази статия ще представя някои VBA кодове за решаване на тази задача.
Възпроизвеждане на персонализиран звук въз основа на стойността на клетка с VBA код
Възпроизвеждане на звук, ако стойността на клетката се промени в конкретна колона с VBA код
Възпроизвеждане на системен звуков сигнал по подразбиране въз основа на стойността на клетката с VBA код
Ето един удобен код за възпроизвеждане на системен звуков сигнал по подразбиране, когато е изпълнено конкретно условие, моля, направете следното:
1. Задръжте надолу ALT + F11 ключове, след това отваря Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния код в Модули Window.
VBA код: Възпроизвеждане на системен звуков сигнал по подразбиране въз основа на стойност на клетка:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. След това запазете и затворете този прозорец с код, върнете се в работния лист и въведете тази формула: =АКО(A1>300,BeepMe(),"") в празна клетка до клетката съдържа стойността, на базата на която искате да възпроизведете звук, и след това натиснете Въведете ключ, нищо няма да се показва в клетката с формула, вижте екранната снимка:
4. И сега, ако въведената стойност в клетка A1 е по-голяма от 300, ще се възпроизведе системен звуков сигнал по подразбиране.
Възпроизвеждане на персонализиран звук въз основа на стойността на клетка с VBA код
Ако искате да пуснете звук, различен от звуковия сигнал на системата по подразбиране, тук също VBA код може да ви направи услуга.
1. Задръжте натиснат ALT + F11 ключове, след това отваря Microsoft Visual Basic за приложения прозорец.
2. Кликнете Поставете > Модулии поставете следния код в Модули Window.
VBA код: Възпроизвеждане на конкретен звук въз основа на стойност на клетка:
#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. След това запазете и затворете този прозорец с код, върнете се в работния лист и въведете тази формула: =АКО(A1>300,SoundMe(),"")в празна клетка до клетката съдържа стойността, на базата на която искате да възпроизведете звук, и след това натиснете Въведете ключ, нищо няма да се показва в клетката с формула, вижте екранната снимка:
4. Отсега нататък, ако в клетка A300 се въведе стойност, по-голяма от 1, веднага ще се възпроизведе определен звук.
бележки: В горния код можете да промените звуковия wav файл според вашите нужди c:\windows\media\ файлова пътека. Вижте екранна снимка:
Възпроизвеждане на звук, ако стойността на клетката се промени в конкретна колона с VBA код
Ако искате да възпроизведете звук, ако стойността на клетката се промени в конкретна колона, можете да приложите следния VBA код.
1. Щракнете с десния бутон върху раздела на листа, който искате да възпроизведете звук, когато стойността се промени в колона, след което изберете Преглед на кода от контекстното меню и в отвореното Microsoft Visual Basic за приложения прозорец, копирайте и поставете следния код в празния модул:
VBA код: Възпроизвеждане на звук, ако стойността на клетката се промени в колона:
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
Забележка: В горния код номерът 3 в сценария Колони (3) е номерът на колоната, който искате да пуснете звук, когато стойността се промени в тази колона.
2. И след това запазете и затворете този прозорец с код, сега, ако стойността на клетка се промени в третата колона, ще се възпроизведе системен звуков сигнал по подразбиране.
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!