通过 Whatsapp 从 Excel 发送图片

2024-05-06

我们如何通过 Whatsapp 从 Excel 发送图片?

我找到了通过以下方式发送消息的vba代码https://web.whatsapp.com https://web.whatsapp.com,

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

尝试此代码并进行调整以适合您。在 A 列(电话号码)和 B 列(您需要附加的图像的链接)

Private Declare PtrSafe Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Dim strBuff As String, butCap As String
Public Const WM_SETTEXT = &HC
Public Const BM_CLICK = &HF5
Private bot As New Selenium.ChromeDriver

Sub SendMessageUsingWhatsApp()
    Dim arr, ws As Worksheet, b As Boolean, t As Date, ele As Object, JS_PROFILE As String, i As Long
    JS_PROFILE = "C:\Users\" & Application.UserName & "\AppData\Local\Google\Chrome\User Data\Default"
    Set bot = New ChromeDriver
    Set ws = ActiveSheet
    arr = ws.Range("A2:B" & ws.Cells(Rows.Count, 1).End(xlUp).Row).Value
    With bot
        .AddArgument "--disable-popup-blocking"
        .SetProfile JS_PROFILE, True
        For i = LBound(arr) To UBound(arr)
            If Not IsEmpty(arr(i, 1)) Then
                .Get "https://web.whatsapp.com/send?phone=" & arr(i, 1)
                If b = False Then .Window.Maximize: b = True
                Application.Wait (Now + TimeValue("00:00:05"))
                If .FindElementsByXPath("//*[@id='app']/div/span[2]/div/span/div/div/div/div/div/div[1]").Count > 0 Then
                    Debug.Print "The Mobile " & arr(i, 1) & " Not Valid Number."
                    .FindElementByXPath("//*[@id='app']/div/span[2]/div/span/div/div/div/div/div/div[2]/div").Click
                    GoTo Skipper
                End If
                t = Timer
                Do
                    DoEvents
                    On Error Resume Next
                        Set ele = .FindElementById("main")
                    On Error GoTo 0
                    If Timer - t = 10 Then Exit Do
                Loop While ele Is Nothing
                Set ele = Nothing
                Application.Wait (Now + TimeValue("00:00:02"))
                    .FindElementByXPath("//*[@id='main']/header/div[3]/div/div[2]/div/span").Click
                    .FindElementByXPath("//*[@id='main']/header/div[3]/div/div[2]/span/div/div/ul/li[1]").Click
                Application.Wait (Now + TimeValue("00:00:02"))
                Call Sample(CStr(arr(i, 2)))
                Application.Wait Now + TimeValue("00:00:05")
                    .FindElementByCss("span[data-icon='send']").Click
                Application.Wait Now + TimeValue("00:00:05")
            End If
Skipper:
        Next i
    End With
    MsgBox "Done...", 64
End Sub

Sub Sample(sPic As String)
    Dim hw As Long, hw1 As Long, hw2 As Long, hw3 As Long, op As Long, openRet As Long
    hw = FindWindow(vbNullString, "Open")
    op = FindWindowEx(hw, 0&, "Button", vbNullString)
    strBuff = String(GetWindowTextLength(op) + 1, Chr$(0))
    GetWindowText op, strBuff, Len(strBuff)
    butCap = strBuff
    Do While op <> 0
        If InStr(1, butCap, "Open") Then openRet = op: Exit Do
    Loop
    hw1 = FindWindowEx(hw, 0&, "ComboBoxEx32", vbNullString)
    hw2 = FindWindowEx(hw1, 0&, "ComboBox", vbNullString)
    hw3 = FindWindowEx(hw2, 0&, "Edit", vbNullString)
    Call SendMessageByString(hw3, WM_SETTEXT, 0, ThisWorkbook.Path & "\Pics\(" & sPic & ").jpg")
    Call SendMessage(openRet, BM_CLICK, 0, 0)
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Whatsapp 从 Excel 发送图片 的相关文章

  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • Confluence:使用 VBA 更新现有页面

    我尝试使用 VBA 更新 Confluence 页面 我的想法是使用REST API加载页面内容 修改内容然后上传修改后的版本 这是我的代码 Private Sub TestRESTApi Dim uname As String uname
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 无法将 Excel 值的类型“double”转换为“string”

    我正在加载 Excel 文件 如网络上许多地方所示 OpenFileDialog chooseFile new OpenFileDialog chooseFile Filter Excel files xls xlsl xls xlsx i
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 根据单元格值向用户窗体添加复选框

    我对 VBA 很陌生 只有 3 天 但我发现它非常有用且易于使用 但现在我面临一个问题 我需要制作一个具有不同复选框的用户窗体 但我需要根据工作表某一列中使用的信息自动添加它们 我相信我可以使用 For Each Next 但我真的不知道如
  • 将ADODB二进制流转换为字符串vba

    我有以下问题 我有一个存储在服务器上的 CSV 文件 但它有 3 个字符作为分隔符 我想从 URL 加载数据并使用 作为分隔符将数据填充到 Excel 页面的列中 到目前为止 我找到了使用 ADODB 记录集从网站加载文件的代码 但我无法进
  • 在 MS Word 中运行外部 vba 代码

    我可以将外部代码链接到 Word 文档吗 我有很多带有宏的 Word 文档 VBA 代码 全部使用相同的代码 我希望代码从外部源运行 而不是从所有这些文档中运行 这样 如果我必须更新代码 我只有一个地方需要更新 您可以创建一个模板并将其放入
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • 在 VBA Excel 中查找、剪切和插入行以匹配借项和贷项值

    我在 Sheet1 中有以下设置数据 并从第 4 行 A 列开始 其中标题位于第 3 行 No Date Code Name Remarks D e b i t Cr e d i t 1 4 30 2015 004 AB 01 04 15
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 如果总和为 0,则查找并删除带标题的最后一列

    我想创建一个宏 查找带有标题的最后一列 并仅当该列的总和等于零时才将其删除 到目前为止 这是我尝试过的 Dim LastCol As Long Dim i As Long With ThisWorkbook Sheets Sheet1 Fo
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • 使用宏打开受信任文档或启用宏时 Excel 崩溃

    正如标题所示 我无法使用宏打开受信任的文档 Excel 立即崩溃 制作文档的副本允许其打开 因为该副本不受信任 并且我可以检查 VB 编辑器中的宏 但启用宏会导致另一次崩溃 为什么会发生这种情况以及我可以采取什么措施来解决它 我今天遇到了类
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航

随机推荐

  • Mongo查询具有两级未知父键的嵌套字段值

    我们使用 MongoDB 来存储时间序列传感器数据 类似于设计中所示的模式https www mongodb com blog post schema design for time series data in mongodb https
  • 使用 Gmail 帐户在 JBoss 中配置 mail-service.xml

    我想配置我的 mail service xml 以从我的 Gmail 帐户发送电子邮件 我已经做了配置 但是没有用
  • 使用 JS 或 Jquery 禁用浏览器窗口中的声音

    有没有办法禁用可能嵌入视频的浏览器窗口上的所有声音 我不是在寻找特定的解决方案 例如使用 js 等定位 Youtube 我需要一些通用的东西来关闭该页面的所有声音 这样如果任何视频播放它就没有声音 需要一些在页面级别关闭声音的东西 而不是通
  • SQLite 和共享首选项的优缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 SQLite 数据库和共享首选项之间存储信息的良好机制是什么 为什么要使用共享偏好设置 为什么使用sqlite 我试图找出它们之间的区别 以
  • 使用模型优先方法时如何播种数据?

    所以我正在学习MVC3和EF4 我尝试了代码优先方法 但它对我来说太混乱了 我可以毫无问题地创建类 但最困难的部分是处理外键和彼此之间的关系 但我首先选择了模型 这样我就可以直观地设计它并查看关系在哪里 创建模型后 它会为我创建一个 SQL
  • 观察点固定地址

    对于我当前的嵌入式应用程序 我尝试将 GDB 观察点放在固定的内存地址处 例如 我的应用程序更新以下地址 0x10793ad0 为了确定代码的哪一部分破坏了值 我尝试了 watch 0x10793ad0 即使 GDB 在此之后不会打印任何错
  • 通过 Assets Pipeline 携带 Sass 变量,Rails 3.1 rc1

    我最近将我的 Rails 3 0 项目之一与 3 1 rc1 进行了分支 以尝试新的资产管道 在使用 3 1 之前 我一直在项目中使用 Sass 因此我在单独的配置文件中设置了一些变量和函数 并让所有其他 sass 文件在第一行导入该文件
  • 为什么调用 istream::tellg() 会影响我的程序的行为?

    我正在尝试将 24 位位图图像转换为灰度图像 include
  • 如何利用磁盘 IO 队列

    我需要从 3 7 GB 文件中读取小数据序列 我需要阅读的职位是不相邻 但我可以命令 IO 以便从头到尾读取文件 该文件存储在 iSCSI SAN 上 该 SAN 应该能够处理 优化排队 IO 问题是 如何一次性请求我需要的所有数据 位置
  • 读取/写入本地 json 文件 swift 4

    请帮我 我在项目中添加了一个json文件 我的 json 文件 person title image Vitamin1 favorite false title B6 image Vitamin2 favorite false 我可以读取文
  • kubectl --token=$TOKEN 未使用令牌的权限运行

    当我使用命令时kubectl与 token标记并指定令牌 它仍然使用来自kubeconfig file 这就是我所做的 NAMESPACE default SERVICE ACCOUNT NAME sa1 kubectl create sa
  • 来自公共字符串的 Android RSA 加密

    我正在开发一个 Android 应用程序 我希望用户能够使用其他人的公钥加密消息 系统将生成公钥 私钥对 然后可以将消息秘密发送给其他用户 我正在创建一个加密类 它将处理消息的加密 解密 不幸的是我遇到了一些问题 在这种方法中 我想传递用户
  • (此时出乎意料 - 批处理脚本

    我正在使用下面的批处理脚本并收到错误 这时候是出乎意料的 我知道问题出在第一行 但我不明白出了什么问题 有任何想法吗 script IF 1 LOOP1 SET P isDefault Value Missing do you want t
  • 使用 use_frameworks 签名错误!和独特的配置文件

    我将最初讨论中的最后一篇文章粘贴到此处 https github com CocoaPods CocoaPods issues 4331 https github com CocoaPods CocoaPods issues 4331 这个
  • Chrome 扩展 - 使用 javascript 定期运行并永久记录数据

    目前 我有一个脚本 当单击右上角托盘中的图像 仅适用于一个特定允许的网站 时 它会扫描 HTML 页面 然后输出一些值 此扫描和输出是单个 JS 文件中的函数 称为 checkData js 即使用户没有主动使用选项卡但它已打开 是否有可能
  • 将 csv 写入谷歌云存储

    我试图了解如何将多行 csv 文件写入谷歌云存储 我只是没有遵循文档 https googlecloudplatform github io google cloud python stable storage blobs html hig
  • 通过 Office API 将多个 Word 文档保存为 HTML

    我有大量的Word文档需要解析 由于它们都是从同一个模板创建的 我认为最好的方法是将它们保存为 HTML 文件并解析 HTML 本身 虽然将单个 Word 文档保存为 HTML 相当容易 但我还没有找到从 Word 内部执行批量过程的方法
  • 使用正则表达式在图像标签周围添加链接

    我想使用 preg replace 在图像标签周围添加链接 Before img href src alt After a href img href src alt a 我将非常感谢任何帮助 非常感谢 这有帮助吗 str img href
  • ToLookup 是否强制立即执行序列

    我正在调查可枚举 ToLookup将可枚举序列转换为字典类型数据结构的 API 更多详情可在这找到 https msdn microsoft com en us library system linq enumerable tolookup
  • 通过 Whatsapp 从 Excel 发送图片

    我们如何通过 Whatsapp 从 Excel 发送图片 我找到了通过以下方式发送消息的vba代码https web whatsapp com https web whatsapp com Sub Test Dim text As Stri