You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA+Selenium WebDriver发送WhatsApp多行消息拆分问题求解

解决WhatsApp Web多行消息逐行发送的问题

问题原因

WhatsApp网页版输入框中,单独按Enter会直接发送消息,要实现输入框内换行需要使用Shift+Enter组合键。你的代码直接将Excel单元格中的换行符(vbLf)通过SendKeys发送,相当于每遇到换行就触发一次发送操作,导致多行消息被拆分成多条发送。

修改方案

将Excel单元格文本中的换行符替换为Selenium的Shift+Enter组合键,这样发送时只会在输入框内换行,不会触发发送,最后再按一次Enter发送完整的多行消息。

修改后的完整代码

Sub WhatsAppMessage()

    'Activate Selenuim web driver
    Dim bot As New WebDriver
    Dim ks As New Keys
    Dim mob As String
    Dim text As String
    Dim processedText As String '新增变量存储处理后的多行消息
    
    'Init new Chrome Instance & navigate to webwhatsapp
    bot.Start "Chrome", "https://web.whatsapp.com/"
    bot.Get "/"
    
    'Ask user to scan the QR code. Once Logged in, continue with the macro
    'MsgBox "Please Scan QR code, After you are Logged in, please confirm this message box by clicking OK"
    
    'Determine number of messages by identifying the number of last rows in column A
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    'Search mobile number / name, Press enter, paste text into whatsapp, press enter to send message
    For i = 4 To LastRow
        'Get mobile number or name from worksheet
        mob = Sheets("Data").Cells(i, 1).Value
        
        'Get Message from Worksheet
        text = Sheets("Data").Cells(2, 1).Value
        
        '处理多行消息:将Excel单元格内的换行替换为Shift+Enter(实现输入框内换行)
        processedText = Replace(text, vbLf, ks.Shift & ks.Enter)
        
        'click in the searchBox
        bot.FindElementByXPath("//*[@id='side']/div[1]/div/div/div[2]").Click
        
        'wait 500ms
        bot.Wait (500)
        
        'Insert mobile number or name
        bot.SendKeys (mob)
        
        'wait 500ms
        bot.Wait (500)
        
        'press enter to confirm search mobile
        bot.SendKeys (ks.Enter)
        
        'wait 500ms
        bot.Wait (500)
        
        '发送处理后的多行消息(仅在输入框内换行,不触发发送)
        bot.SendKeys processedText
        
        'wait 500ms
        bot.Wait (500)
        
        'press enter to send完整消息
        bot.SendKeys (ks.Enter)
        
    Next i
    MsgBox "Done :)"
End Sub

关键修改说明

  1. 新增processedText变量,用于存储替换换行符后的消息内容
  2. 使用Replace(text, vbLf, ks.Shift & ks.Enter)将Excel单元格中的换行(vbLf,对应Excel里的Alt+Enter)替换为WhatsApp输入框支持的换行组合键
  3. 发送processedText而非原text,确保输入框内正确换行
  4. 最后一次SendKeys(ks.Enter)负责发送完整的多行消息

内容的提问来源于stack exchange,提问作者Manojkumar Dalal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:42:35