我有很多数据文件要用作源文件。但是当我使用组合框选择文件名时,我希望从这些文件中获取所选数据。见附图。当我从下拉列表中选择货件ID时,我想从具有相同ID号的文件中获取一些数据。我使用下面的代码来做到这一点。
.git/config
现在我想使用" ID"文件名和工作表名称的变量。我怎么能这样做。
答案 0 :(得分:1)
未测试:
Sub GetDataFromClosedBook()
Const FILE_INFO As String = "='D:\Excel Software\Shipment Tracking\" & _
"[<id>.xlsx]Shipment - <id> - Connected Ord'!"
Dim SO As String
Dim Qty As String
Dim ID As String, fn
ID = Worksheets("Sheet1").Cells(1, "O").Value
'replace ID in file/sheet path
fn = Replace(FILE_INFO, "<id>", ID)
'data location & range to copy
SO = fn & "$A$1:$C$50"
Qty = fn & "$I$1:$I$50"
'link to worksheet
With ThisWorkbook.Worksheets(1).Range("A1:C50")
.Formula = SO
'convert formula to text
.Value = .Value
End With
With ThisWorkbook.Worksheets(1).Range("E1:E50")
.Formula = Qty
'convert formula to text
.Value = .Value
End With
End Sub
编辑:作为备注添加,因为我不知道Excel做了这个......
如果在引用文件中找不到公式中的工作表名称,且该文件只有一个工作表,Excel将自动将公式中的工作表名称更改为工作表中的工作表名称文件。它不会警告你这一点,所以如果表格的名称确实需要匹配,你需要找到一种方法来检测已发生的事情。
如果没有匹配且源文件包含&gt; 1张,则Excel会提示您应该使用哪张表。