Giúp: Đoạn code âm thanh không chạy đúng vùng được chọn (1 người xem)

  • Thread starter Thread starter pro8x
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

pro8x

Thành viên hoạt động
Tham gia
3/11/11
Bài viết
142
Được thích
24
Mình có đoạn code âm thanh. Khi nhập dữ liệu vào vùng "A1:B10" thì phát ra tiếng beep. Vấn đề là khi chạy đoạn code này thì nhập vào đâu nó cũng kêu.Hic.bác nào biết sai ở đâu chỉ giúp vói.
Mã:
Option ExplicitPrivate Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
Dim CheckRange As Range
Dim PlaySound As Boolean


Set CheckRange = Range("a1:b10") 
For Each Cell In CheckRange
If Cell.Value > 0 Then
PlaySound = True
End If
Next
If PlaySound Then
Call sndPlaySound32("C:\Windows\Media\notify.wav", 1) 
End If
End Sub
 
Code trên vừa sai vừa rườm rà, bạn hãy thử code này:
Mã:
Option Explicit
Private Declare Function sndPlaySound32 Lib "winmm.dll" _
                                        Alias "sndPlaySoundA" (ByVal lpszSoundName _
                                                               As String, ByVal uFlags As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("a1:b10")) Is Nothing Then
        Call sndPlaySound32("C:\Windows\Media\notify.wav", 1)
    End If
End Sub
 
Upvote 0
cảm ơn bạn đã giúp đỡ
 
Upvote 0
Code trên vừa sai vừa rườm rà, bạn hãy thử code này:
Mã:
Option Explicit
Private Declare Function sndPlaySound32 Lib "winmm.dll" _
                                        Alias "sndPlaySoundA" (ByVal lpszSoundName _
                                                               As String, ByVal uFlags As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("a1:b10")) Is Nothing Then
        Call sndPlaySound32("C:\Windows\Media\notify.wav", 1)
    End If
End Sub
Bạn ơi giúp mình thêm đoạn code dể vùng "B1:B10" cũng có âm thanh khi thoả mãn điều kiện k? Điều kiện là khi nhập vào vùng "A1:A10" nếu đúng thì vùng B1:B10 tương ưng sẽ là ô trắng"",còn không ô ờ vùng B1:B10 sẽ là "NG". Khi ô ở vùng B1:B10 là "NG" thì sẽ có âm thanh.
Vậy trường hợp này viết code thế nào vậy bạn.Mình thử mấy lần không dược
 
Upvote 0
Bạn ơi giúp mình thêm đoạn code dể vùng "B1:B10" cũng có âm thanh khi thoả mãn điều kiện k? Điều kiện là khi nhập vào vùng "A1:A10" nếu đúng thì vùng B1:B10 tương ưng sẽ là ô trắng"",còn không ô ờ vùng B1:B10 sẽ là "NG". Khi ô ở vùng B1:B10 là "NG" thì sẽ có âm thanh.
Vậy trường hợp này viết code thế nào vậy bạn.Mình thử mấy lần không dược
Vậy thế nào là điều kiện đúng đây?
Vùng B1:B10 là 1 công thức trả về chữ "NG" khi điều kiện sai hay là sao? Tốt nhất bạn cho file lên đi
 
Upvote 0
Mình up file mọi người giúp với ah

1> Code trong Module:

Mã:
Private Declare Function PlaySound Lib "winmm.dll" _
  Alias "PlaySoundA" (ByVal lpszName As String, _
  ByVal hModule As Long, ByVal dwFlags As Long) As Long
Function Alarm(ByVal Exp, ByVal Cond) As Boolean
  Dim chk As Boolean
  On Error GoTo ErrHandler
  chk = Evaluate(Exp & Cond)
  If chk Then
    Call PlaySound("C:\WINDOWS\Media\chimes.wav", 0&, &H1 Or &H20000)
    Alarm = True: Exit Function
  End If
ErrHandler: Alarm = False
End Function

2> Đặt name:
Đặt con trỏ chuột tại dòng 1 rồi vào Define name, đặt 1 name
Mã:
chk =Alarm(EVALUATE(LEFT(data!$A1,2)<>"DT"),"")
3> Thiết lập Validation:
Quét chọn A1:A10, vào Data Validation, đặt công thức Custom =Chk Xong!
--------------------------
Tham khảo thêm bài này:
http://www.giaiphapexcel.com/forum/showthread.php?21496-Báo-động-nhập-liệu-sai-bằng-âm-thanh
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
mọi người cho hỏi sao file nhạc mp3 nó k chạy nhỉ.
PS: mình tìm trên diễn đàn không có
 
Upvote 0
Upvote 0

Bài viết mới nhất

Back
Top Bottom