Excel VBA для отправки текстового сообщения в WhatsApp - PullRequest
1 голос
/ 20 июня 2020

Я разработал код, который отправляет сообщение из excel в WhatsApp в список контактов, он отлично работает для одного контакта, но когда добавляется более одного контакта, он не перемещается в эти контакты, вместо этого вставляет другие имена контактов и сообщения в окне сообщения первого контакта. Вот вид Excel, когда я нажимаю кнопку, вывод, который представляет собой веб-страницу WhatsApp, работает так, как показано на рисунке.

введите описание изображения здесь

Я знаю, что есть небольшая ошибка, но мы будем очень признательны за любую поддержку для решения этой проблемы. Вот код

Sub Test()

    Dim text As String
    Dim contact As String
    text = Range("C2").Value
    ActiveWorkbook.FollowHyperlink Address:=" https://web.whatsapp.com/"
    If MsgBox("Is WhatsApp Loaded?" & vbNewLine & vbNewLine & "Press No To Cancel", vbYesNo + vbQuestion + vbSystemModal, "WhatsApp") = vbYes Then
        Fazer (100)
        startrow = 2
        startcol = 2
        Do Until Sheets(1).Cells(startrow, 1) = ""
            contact = Cells(startrow, 1)
            text1 = Sheets(1).Cells(startrow, startcol).Value
            Fazer (3000)
                Call SendKeys("{TAB}", True)
            Fazer (1000)
                Call SendKeys(contact, True)
            Fazer (1000)
                Call SendKeys("~", True)
            Fazer (1000)
                Call SendKeys(text1, True)
            Fazer (1000)
                Call SendKeys("~", True)
            Fazer (1000)
            startrow = startrow + 1
        Loop
    Else
    End If
End Sub

Function Fazer(ByVal Acao As Double)
    Application.Wait (Now() + Acao / 24 / 60 / 60 / 1000)
End Function
    
    

1 Ответ

1 голос
/ 20 июня 2020

В коде нет ошибки, WhatsApp Web работает по-другому:

После отправки вашего сообщения в Whatsapp, требуется два нажатия клавиш Tab, чтобы перейти к поле для поиска контактов (первая вкладка будет наведена на сообщение, которое вы только что отправили). Это применимо для каждой итерации вашей программы после первой итерации.

Если вы не отправляете сообщение или только что открыли WhatsApp Web (который вы, вероятно, тестировали), вам понадобится только один Нажатие клавиши Tab. Это применимо только к первой итерации вашего l oop, но в настоящее время включается для каждой итерации.

Самый простой способ изменить это в вашем скрипте - добавить еще одну строку в l oop после отправки текста для имитации второго необходимого нажатия клавиши.

Do Until Sheets(1).Cells(startrow, 1) = ""
    contact = Cells(startrow, 1)
    text1 = Sheets(1).Cells(startrow, startcol).Value
    Fazer (3000)
        Call SendKeys("{TAB}", True)
    Fazer (1000)
        Call SendKeys(contact, True)
    Fazer (1000)
        Call SendKeys("~", True)
    Fazer (1000)
        Call SendKeys(text1, True)
    Fazer (1000)
        Call SendKeys("~", True)
    Fazer (1000)
    startrow = startrow + 1
    Fazer (1000)
       Call SendKeys("{TAB}", True) 'Simulate the 2nd keystroke
Loop
...