通过给定环境变量路径,将excel工作表的单元格值与另一个excel工作表一起引用

通过给定环境变量路径,将excel工作表的单元格值与另一个excel工作表一起引用,excel,excel-formula,Excel,Excel Formula,我有两张excel工作表, 第一个是: Test.xlsx 第二点: Sample.xlsx 我用Sample.xlsx的C10引用Test.xlsx中的B10单元格值,公式如下: ='C:\Users\Happy\Desktop\Work[Sample.xlsx]Sheet1'!C10 在Test.xlsx文件的B10中 有人能建议我如何替换公式中目标文件的硬编码路径吗: ='C:\Users\Happy\Desktop\Work[Sample.xlsx]Sheet1'!C10 (“C

我有两张excel工作表, 第一个是:

Test.xlsx

第二点:

Sample.xlsx

我用Sample.xlsx的
C10
引用Test.xlsx中的
B10
单元格值,公式如下:

='C:\Users\Happy\Desktop\Work[Sample.xlsx]Sheet1'!C10 
在Test.xlsx文件的
B10

有人能建议我如何替换公式中目标文件的硬编码路径吗:

='C:\Users\Happy\Desktop\Work[Sample.xlsx]Sheet1'!C10 
(“C:\Users\Happy\Desktop\Work”)

环境变量“Temp”的值为
“C:\Users\Happy\Desktop\Work”


谢谢。

假设您的临时路径存储在单元格E1上。在B10上输入:

=INDIRECT(E1&"!C10")
当然,您可以使用名称Temp而不是E1。只需将E1单元(或您想要的任何其他单元)命名为Temp,并将公式更改为:

=INDIRECT(Temp&"!C10")
  • 要命名单元格,请单击它并更改左上方框中的名称

    • 我有两个文件:Book1.xlsx和Book2.xlsx 转到Book2.xlsx和特殊单元格,键入“
      =[Book1.xlsx]Sheet1!$A$5
      ”例如。
      更改Book1.xlsx.A5中的值并保存后,Book2.xlsx将生效。

      您需要使用VBA来展开环境变量。如果文件夹总是在用户的桌面上,那么这样的东西就足够了。将其放入工作簿中的标准代码模块:

      公共函数GetEnviron(streng作为字符串,可选的folderAppend作为字符串=vbNullString)作为字符串
      如果不是folderAppend=vbNullString,则
      folderAppend=folderAppend&IIf(右(folderAppend,1)=“\”,vbNullString,“\”)
      如果结束
      GetEnviron=Environ(UCase(streng))&“\”和folderAppend
      端函数
      
      在您的电子表格中,请使用:

      =INDIRECT(“”&GetEnviron(“USERPROFILE”,“Desktop\Work\”)&“[Sample.xlsx]Sheet1'!C10”)
      

      VBA中的
      Environ()
      函数用于扩展环境变量字符串-例如:

      • 环境变量:
        %USERPROFILE%
        |返回:(C:\Users\[username])
        • VBA
          Environ(“USERPROFILE”)
          |返回:(C:\Users\[username])
      • 环境变量:
        %APPDATA%
        |返回:(C:\users\[username]\APPDATA\Roaming)
        • VBA
          Environ(“APPDATA”)
          |返回:(C:\users\[username]\APPDATA\Roaming)