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

如何在VBA中获取链接SharePoint列表特定记录的photo的serviceRelativeUrl

获取PowerQuery中特定记录的serviceRelativeUrl并实现照片批注功能

一、提取特定记录的serviceRelativeUrl

方式1:批量提取所有记录的路径

  • 打开PowerQuery编辑器,选中目标会员数据查询
  • 切换到「添加列」选项卡,点击「自定义列」
  • 输入公式:[照片][serviceRelativeUrl],确认后生成新列,每条记录的照片相对路径会自动填充
  • 如需完整照片URL,可使用拼接公式:[照片][serverUrl] & [照片][serviceRelativeUrl]

方式2:定位单条记录(如第10条)的路径

  • 在PowerQuery的「应用步骤」中选中「导航」后的数据集
  • 注意PowerQuery行索引从0开始,第10条记录对应索引9,右键点击照片列的该条记录,选择「添加为新查询」
  • 在新查询中直接展开serviceRelativeUrl字段即可获取路径;也可在公式栏直接输入:#"导航"{9}[照片][serviceRelativeUrl](需将#"导航"替换为你实际的步骤名称)

二、为姓名单元格添加照片批注

提取完整照片URL后,可通过VBA批量实现批注功能:

  1. 返回Excel工作表,确保数据包含姓名列和完整照片URL列
  2. 按Alt+F11打开VBA编辑器,插入新模块
  3. 粘贴以下代码(根据实际列名、工作表名调整):
Sub AddPhotoComments()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim picUrl As String
    Dim comment As Comment
    
    Set ws = ThisWorkbook.Worksheets("会员表") '替换为你的工作表名称
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row '假设姓名在A列
    For i = 2 To lastRow '从第2行开始,跳过表头
        picUrl = ws.Cells(i, "B").Value '假设照片URL在B列
        If picUrl <> "" Then
            '清除原有批注
            On Error Resume Next
            ws.Cells(i, "A").Comment.Delete
            On Error GoTo 0
            
            '添加带照片的批注
            Set comment = ws.Cells(i, "A").AddComment
            comment.Text Text:=""
            comment.Shape.Fill.UserPicture picUrl
            comment.Shape.Width = 100 '自定义照片宽度
            comment.Shape.Height = 120 '自定义照片高度
        End If
    Next i
End Sub
  1. 运行代码,姓名单元格鼠标悬停时即可显示对应会员照片

内容的提问来源于stack exchange,提问作者Martie Timmers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:42:08