【问题标题】:Getting information from a closed excel workbook using VBA使用 VBA 从已关闭的 Excel 工作簿中获取信息
【发布时间】:2019-10-03 01:23:23
【问题描述】:

我正在尝试使用 excel VBA 从已关闭的工作簿中提取信息,更具体地说,将已关闭的 excel 工作簿中的一系列数字的总和提取到我当前的 excel 工作簿中。

我已尝试以下代码:
我想找到从 Z8 到列中最后一个 Z 单元格的值的总和。

Range("D4").Formula = "Sum('I:\Outgoing\Money Outgoing\'!$Z8:$Z)"
Set wkbk = Workbooks.Open("I:\Outgoing\Money Outgoing.xlsx\")
Range("Z7").Select
ActiveCell.FormulaR1C1 = "=SUM(Z8:Z10000)"
Range("D4").Value = GetInfoFromClosedFile(a, f, d, "Z6")

我不想打开已关闭的工作簿 excel文件是Money Outgoing.xlsx 文件中只有 1 个选项卡。选项卡名称为布局 1

【问题讨论】:

  • 我会避免像这样链接工作簿。 I: 是映射网络驱动器吗?如果有人将其重命名为 Money Outgoing 2019-2020.xlsx 怎么办?你可以试试Sheet1.Range("D4").Formula = "=Sum('[I:\Outgoing\Money Outgoing.xlsx]Layout 1'!$Z8:$Z10000)"。也见avoid Select and Activate。祝你好运!
  • 感谢 Mathieu,避免引用 Z10000 而是引用最后一个 z 单元格,是 $Z8:$Z 吗?
  • 不,如果不打开文件 AFAIK,您将无法执行此操作。就 Excel 而言,$Z8:$Z 是一个语法错误。
  • 谢谢马修!这有很大帮助。如果可能的话,如果你有时间,你能看看我的另一个帖子吗?

标签: excel vba


【解决方案1】:

无需打开工作簿,您可以使用以下代码。 根据您的需要进行修改。

Sub ExecuteMacroForClosedWorkbook()

Dim FldrName As String
Dim FlName As String
Dim WrkshtName As String
Dim ExecuteStringVariable As String

ExecuteStringVariable = "'" & FldrName & "\" & "[" & FlName & "]" & WrkshtName & "'!R"

ActiveCell.value = ExecuteExcel4Macro(ExecuteStringVariable & 1 & "C1") 'Execute A1 Cell and Transfer Value to Your ActiveCell

End Sub

【讨论】:

  • 谢谢 mehmet,我还有一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多