excel - Excel公式从绝对路径到相对路径
问题描述
我需要 vba 停止从 c: 中查看文件位置,而只是从文件名中读取。
我还是 VBA 的新手并尝试了一些东西,但我似乎无法让它工作。
Dim lastRow As Long
With Sheets("Vendor Recon")
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("B2:B" & lastRow)
.Formula = "=SUMIFS('Ta Force Report.xlsx'!Per_Diem[Brock PO'#],'Ta Force Report.xlsx'!Per_Diem[Date],A7,'Ta Force Report.xlsx'!Per_Diem[EE'#],C7)"
End With
With .Range("R2:R" & lastRow)
.Formula = "=COUNTIFS([BrockLenel.xlsx]Sheet1!$F:$F,C2,[BrockLenel.xlsx]Sheet1!$C:$C,A2)"
End With
我希望它在将此文件提供给我的同事时只查看文件名而不是 c: 位置。
解决方案
Excel 将始终在公式中查找文件到达的最后位置。如果您始终在范围内设置该公式而不将其转换为值,那么它将不断执行此操作。您可以尝试以下方法之一。一个)
With .Range("B2:B" & lastRow)
.Formula = "Insert your formula"
.Formula = .Value
End With
这将始终转化为价值并停止寻找位置。
b)使用单元格存储您希望公式查找值的路径,将单元格值作为变量存储到 VBA 中并在公式中使用它,说:
file1 = Sheets("Variables").Range("A1")
'You would store on that range and sheet
the name of the file, let's say it is "Report.xlsx"
With .Range("B2:B" & lastRow)
.Formula = "=SUMIFS('Ta Force " & file1 & "'!Per_Diem[Brock PO'#],'Ta Force " & file1 &
"'!Per_Diem[Date],A7,'Ta Force " & file1 & "'!Per_Diem[EE'#],C7)"
End With
您可以每次使用工作表的名称、路径、文件等进行此替换。
让我知道这是否对您有帮助。
推荐阅读
- javascript - 带有 Docker 的 Nuxt js:找不到模块:错误:无法解析
- nlp - 如何为 T5 模型使用 forward() 方法而不是 model.generate()
- javascript - 如何使用 jquery 获取 textarea 上每一行的值?
- android - kotlin java.lang.NumberFormatException:对于输入字符串:“null”
- android-studio - 计步器传感器不适用于我的应用程序。你能告诉我问题是什么吗?我已经尝试调试了好几天了
- wordpress - Leafet - 我需要显示更多标记
- amazon-web-services - 如何在飞镖中调用 QueryPagination?AWS 放大
- javascript - Grunt Critical CSS 在 Drupal 7 站点上有问题
- php - curl works in CLI, but not in PHP
- java - 从 Java Pojo Jackson 创建复杂的 JSON 有效负载