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

通过超链接打开的工作簿无法关闭的VBA代码问题

解决VBA无法关闭超链接工作簿的问题

问题根源

  • 未将打开的工作簿赋值给变量,直接用完整文件路径引用Workbooks集合会出错——Workbooks的索引是文件名而非完整路径。
  • 无用的hla变量未赋值,With hla块逻辑无效且位置错误(脱离If判断,无论是否有超链接都会执行)。
  • 未指定工作表所属的工作簿,Sheets("ATTENDANCE RECORD")默认引用当前工作簿,而非打开的目标工作簿。
  • 代码结构错误:End If提前闭合,导致后续操作脱离判断逻辑。
  • cell. Offset存在多余空格,属于语法错误。

修正后的OpenHyperlinkAndCopyData代码

Sub OpenHyperlinkAndCopyData()
    Dim ws As Worksheet
    Dim cell As Range
    Dim hyperlinkAddress As String
    Dim dataToCopy As Variant
    Dim targetWB As Workbook ' 存储打开的目标工作簿
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    For Each cell In ws.Range("B12:B208")
        If cell.Hyperlinks.Count > 0 Then
            hyperlinkAddress = cell.Hyperlinks(1).Address
            ' 将打开的工作簿赋值给变量,避免路径索引错误
            Set targetWB = Workbooks.Open(hyperlinkAddress)
            
            ' 指定目标工作簿的工作表,确保数据来源正确
            dataToCopy = targetWB.Sheets("ATTENDANCE RECORD").Range("C4").Value
            cell.Offset(0, 2).Value = dataToCopy
            
            ' 通过变量关闭工作簿,操作更可靠
            targetWB.Close savechanges:=False
            Set targetWB = Nothing ' 释放对象内存
        End If ' 确保只有存在超链接时才执行后续操作
    Next cell
End Sub

主代码整合建议

在VBA_Loop_Through_all_Files_in_subfolders_Using_FSO_Early_Binding的末尾添加Call OpenHyperlinkAndCopyData,即可实现生成超链接后自动提取数据的完整流程。

内容的提问来源于stack exchange,提问作者Rose Vittur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:41:03