Всем привет дорогие участники форума. Помогите решить проблему. Суть такая: Нужно как-то сделать так, чтобы когда : 1- Менялось значение в колонке Е, проигрывался файл 1 2- Менялось значение в колонке F, проигрывался файл 2 3- Менялось значение в колонке G, проигрывался файл 3 Третий день с этим мучаюсь не могу ни как сделать, вроде бы и информации много, но из-за своей неопытности в VBA не могу отфильтровать нужную информацию от не нужной. Плюс ко всему, комп старенький, 32бит, виндовс 7, ексель 2010. Помогите файл прикрепить почему-то не удаётся. если укажите почту, скину на почту
Всем привет дорогие участники форума. Помогите решить проблему. Суть такая: Нужно как-то сделать так, чтобы когда : 1- Менялось значение в колонке Е, проигрывался файл 1 2- Менялось значение в колонке F, проигрывался файл 2 3- Менялось значение в колонке G, проигрывался файл 3 Третий день с этим мучаюсь не могу ни как сделать, вроде бы и информации много, но из-за своей неопытности в VBA не могу отфильтровать нужную информацию от не нужной. Плюс ко всему, комп старенький, 32бит, виндовс 7, ексель 2010. Помогите файл прикрепить почему-то не удаётся. если укажите почту, скину на почтуDen260889
den
Сообщение отредактировал Den260889 - Суббота, 22.02.2025, 13:50
Похоже уже не третий день, а больше (если судить по датам ваших постов на Кибере). Вам предложили несколько рабочих вариантов решения, но в вашей версии MSO они не идут, слишком старая. Возможно и есть способ это решить в вашей версии, но в ней уже мало кто работает. ИМХО, если нет возможности обновить эксель, то нужно подумать о других вариантах вывода информации.
Похоже уже не третий день, а больше (если судить по датам ваших постов на Кибере). Вам предложили несколько рабочих вариантов решения, но в вашей версии MSO они не идут, слишком старая. Возможно и есть способ это решить в вашей версии, но в ней уже мало кто работает. ИМХО, если нет возможности обновить эксель, то нужно подумать о других вариантах вывода информации.i691198
Вот нашёл макрос, но у меня он не работает. Необходимо подкорректировать. Можете прокоментировать каждую строку, что она обозначает.
[vba]
Код
Dim previousValueE As Variant Dim previousValueF As Variant Dim previousValueG As Variant
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ExitHandler Application.EnableEvents = False
' Проверка изменения в колонке E If Not Intersect(Target, Me.Columns("E")) Is Nothing Then If Target.Value <> previousValueE Then PlayAudioFile "C:\path\to\your\audiofile1.mpeg" previousValueE = Target.Value End If End If
' Проверка изменения в колонке F If Not Intersect(Target, Me.Columns("F")) Is Nothing Then If Target.Value <> previousValueF Then PlayAudioFile "C:\path\to\your\audiofile2.mpeg" previousValueF = Target.Value End If End If
' Проверка изменения в колонке G If Not Intersect(Target, Me.Columns("G")) Is Nothing Then If Target.Value <> previousValueG Then PlayAudioFile "C:\path\to\your\audiofile3.mpeg" previousValueG = Target.Value End If End If
ExitHandler: Application.EnableEvents = True End Sub
Sub PlayAudioFile(filePath As String) Dim player As Object Set player = CreateObject("WMPlayer.OCX") player.URL = filePath player.controls.play Do While player.playState <> 1 ' 1 = Stopped DoEvents Loop player.close End Sub
[/vba]
Вот нашёл макрос, но у меня он не работает. Необходимо подкорректировать. Можете прокоментировать каждую строку, что она обозначает.
[vba]
Код
Dim previousValueE As Variant Dim previousValueF As Variant Dim previousValueG As Variant
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ExitHandler Application.EnableEvents = False
' Проверка изменения в колонке E If Not Intersect(Target, Me.Columns("E")) Is Nothing Then If Target.Value <> previousValueE Then PlayAudioFile "C:\path\to\your\audiofile1.mpeg" previousValueE = Target.Value End If End If
' Проверка изменения в колонке F If Not Intersect(Target, Me.Columns("F")) Is Nothing Then If Target.Value <> previousValueF Then PlayAudioFile "C:\path\to\your\audiofile2.mpeg" previousValueF = Target.Value End If End If
' Проверка изменения в колонке G If Not Intersect(Target, Me.Columns("G")) Is Nothing Then If Target.Value <> previousValueG Then PlayAudioFile "C:\path\to\your\audiofile3.mpeg" previousValueG = Target.Value End If End If
ExitHandler: Application.EnableEvents = True End Sub
Sub PlayAudioFile(filePath As String) Dim player As Object Set player = CreateObject("WMPlayer.OCX") player.URL = filePath player.controls.play Do While player.playState <> 1 ' 1 = Stopped DoEvents Loop player.close End Sub