通过提供环境variablespath,将excel表格的单元格值与另一个excel表格相关联
我有两个Excel工作表,第一个是:
Test.xlsx
第二个:
Sample.xlsx
我使用以下公式将Test.xlsx中的B10
单元格值与Sample.xlsx的C10
值进行比较:
='C:\Users\Happy\Desktop\Work[Sample.xlsx]Sheet1'!C10
在Test.xlsx文件的B10
中。
任何人都可以build议我如何replace公式中的目标文件的硬编码path:
("C:\Users\Happy\Desktop\Work")
环境variables“Temp”的值为"C:\Users\Happy\Desktop\Work"
。
谢谢。
我有2个文件:Book1.xlsx和Book2.xlsx转到Book2.xlsx和特殊的单元格,例如“ =[Book1.xlsx]Sheet1!$A$5
”。 当您更改Book1.xlsx.A5中的值并保存时,Book2.xlsx将生效。
假设您的临时path存储在单元格E1中。 在B10上input:
=INDIRECT(E1&"!C10")
当然,您可以使用Temp而不是E1。 只要命名E1细胞(或任何你想要的其他细胞)温度,并改变公式:
=INDIRECT(Temp&"!C10")
- 点击单元格名称并在左上angular的框中更改名称
您将需要使用VBA来扩展环境variables。 如果该文件夹总是在用户的桌面上,那么类似这样的东西就足够了。 将其放置在工作簿中的标准代码模块中:
Public Function GetEnviron(strEnv As String, Optional folderAppend As String = vbNullString) As String If Not folderAppend = vbNullString Then folderAppend = folderAppend & IIf(Right(folderAppend, 1) = "\", vbNullString, "\") End If GetEnviron = Environ(UCase(strEnv)) & "\" & folderAppend End Function
并在您的电子表格中使用,如:
=INDIRECT("'"&GetEnviron("USERPROFILE","Desktop\Work\")&"[Sample.xlsx]Sheet1'!C10")
VBA中的Environ()
函数用于扩展环境variablesstring,例如:
- 环境variables:
%USERPROFILE%
| 返回:(C:\ Users \ [用户名])- VBA
Environ("USERPROFILE")
| 返回:(C:\ Users \ [用户名])
- VBA
- 环境variables:
%APPDATA%
| 返回:( C:\ users \ [用户名] \ AppData \ Roaming)- VBA
Environ("APPDATA")
| 返回:( C:\ users \ [用户名] \ AppData \ Roaming)
- VBA