воспроизводить звук в Excel, когда данные вводятся в столбец - PullRequest
0 голосов
/ 22 февраля 2019

Я ввожу серийные номера в Excel, у меня уже включена проверка данных, и это прекрасно работает.Однако большинство пользователей, которые используют систему при сканировании, подают звуковой сигнал, который сканер издает, даже если он не вводит данные в саму ячейку и просто идет своим путем, что делает пропущенное сканирование.Я пытаюсь получить простую VBA или формулу для всего столбца, что при вводе данных в этот столбец будет звучать звук по умолчанию, сообщающий пользователю, что данные были успешно введены в эту ячейку.Любая помощь будет оценена, спасибо заранее.Имейте в виду, что я пытался использовать такие значения, как = If (B3> 30, BeepOnce (), ""), однако наши серийные номера содержат как буквы, так и цифры, т.е. G18BB0070988019282

1 Ответ

0 голосов
/ 22 февраля 2019

Поместите это в модуль вашего рабочего листа, чтобы отслеживать любые изменения в столбце B.
В зависимости от длины измененного значения воспроизводятся разные звуки:

  1. Стандартный Excel VBA Beep, результат может отличаться!
  2. Вызов API Звуковой сигнал с переменной частотой и продолжительностью
  3. Excel Speech.Speak , если установлены функции речи

Код со всеми 3 вариантами:

Option Explicit

Private Declare PtrSafe Function KernelBeep Lib "kernel32" Alias "Beep" _
   (ByVal dwFreq As Long, _
    ByVal dwDuration As Long) As Long

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MonitoredArea As Range
    Set MonitoredArea = Intersect(Target, Me.Range("B:B"))
    If Not MonitoredArea Is Nothing Then
        If Len(Target.Value) > 10 Then
            'Beep                   ' Excel VBA Standard
            KernelBeep 4000, 100    ' frequency, duration
            'Application.Speech.Speak "ok", True
        Else
            KernelBeep 600, 100
            KernelBeep 600, 100
            KernelBeep 600, 100
            'Application.Speech.Speak "a", True
        End If
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...