Board logo

标题: 【50元求助】关于excel的函数,怎么把两个不同文件夹的表格相互引用 [打印本页]

作者: sykIII    时间: 2020-5-16 20:40     标题: 【50元求助】关于excel的函数,怎么把两个不同文件夹的表格相互引用

vlookup函数可以把在同级目录的表格相对引用起来
但是企业微盘这个要建立分区就必须分成文件夹
公司/文件夹A/数据
公司/文件夹B/统计
大概这么个结构
求解
作者: Batcher    时间: 2020-5-16 21:10

回复 1# sykIII


    请把测试用的两个目录以及Excel文件打包压缩传上来我试试
作者: sykIII    时间: 2020-5-16 21:20

回复 2# Batcher

链接: https://pan.baidu.com/s/1fWEzayO-2trag0Uur0bPQw 提取码: gjfu

似乎要使用VBA这种,但是我真的一窍不通,只会简单使用函数
作者: Batcher    时间: 2020-5-16 21:37

回复 3# sykIII


    你的VLOOKUP不是已经写好了吗,测试的时候遇到什么问题了吗,请详细说下。
作者: sykIII    时间: 2020-5-16 21:45

回复 4# Batcher


    你把他们换个路径再试试,肯定找不到源,excel不支持分级目录下的表格文件引用,听人说需要用vba
作者: Batcher    时间: 2020-5-16 21:48

回复 5# sykIII


    你的意思是《统计.xlsx》里面的函数写好了,但是后来《数据.xlsx》所在目录发生了变化对吗?那vlookup肯定是找不到了
作者: sykIII    时间: 2020-5-16 21:52

回复 6# Batcher


    不是的,他们都在一个父级目录结构里,都在"测试"这个文件夹里
把"测试"这个文件夹挪走,挪到什么地方都行,打开[统计.xlsx]一定会失效
正常来说我发给你们,你们也应该失效
作者: Batcher    时间: 2020-5-16 23:44

回复 7# sykIII


试试这段VBA:
  1. Private Sub Workbook_Open()
  2.     Dim n As Integer
  3.     n = 1
  4.     For n = 1 To UBound(ActiveWorkbook.LinkSources(xlExcelLinks))
  5.         Link_Old = ActiveWorkbook.LinkSources(xlExcelLinks)(n)
  6.         If Link_Old = "" Then Exit Sub
  7.         ArrOld = Split(Link_Old, "\")
  8.         ArrNew = Split(ActiveWorkbook.Path, "\")
  9.         ArrNew(UBound(ArrNew)) = ArrOld(UBound(ArrOld) - 1)
  10.         Link_New = Join(ArrNew, "\") & "\" & ArrOld(UBound(ArrOld))
  11.         If Link_Old <> Link_New Then
  12.             Set myfile = CreateObject("Scripting.FileSystemObject")
  13.             If myfile.fileExists(Link_New) Then
  14.                 ActiveWorkbook.ChangeLink Link_Old, Link_New, xlExcelLinks
  15.             End If
  16.         End If
  17.         ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(xlExcelLinks)(n)
  18.     Next
  19. End Sub
复制代码
如果不知道怎么执行,请直接尝试文件:
作者: sykIII    时间: 2020-5-16 23:55

回复 8# Batcher


   能详细说一下这个填在哪么,我这边有好几个这种表,数据都很庞大
您真的帮了我天大的忙,万分感谢
作者: Batcher    时间: 2020-5-17 00:24

回复 9# sykIII


打开文件:统计.xlsx
Alt + F11
双击Thisworkbook,选择workbook,选择Open事件,参考截图:https://zhidao.baidu.com/question/578896508.html
把代码放进去
统计.xlsx 另存为 统计.xlsm
作者: sykIII    时间: 2020-5-17 09:10

本帖最后由 sykIII 于 2020-5-17 10:31 编辑

回复 10# Batcher


    十分感谢!

还有一事求教
这个表再单独引用一个文件时是没问题的
但是引用多个就会报错,我把所有表都拿上来您看一下吧,麻烦您了

链接: https://pan.baidu.com/s/1z05gRNfmcEwIRmwJNU7cDA 提取码: t141




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2