Excel vba是否从列中列出的多个工作簿中获取值?
我有一本工作簿,G列有其他工作簿Excel vba是否从列中列出的多个工作簿中获取值?,excel,vba,Excel,Vba,我有一本工作簿,G列有其他工作簿 Folder\File1.xls Folder\File2.xls Folder\File3.xls Folder\File4.xls 下面的vba代码从所有这些工作簿中的单元格C15获取电子邮件地址,并将其添加到U列,如下所示: Folder\File1.xls Email Folder\File2.xls Email Folder\File3.xls Email Folder\File4.xls
Folder\File1.xls
Folder\File2.xls
Folder\File3.xls
Folder\File4.xls
下面的vba代码从所有这些工作簿中的单元格C15获取电子邮件地址,并将其添加到U列,如下所示:
Folder\File1.xls Email
Folder\File2.xls Email
Folder\File3.xls Email
Folder\File4.xls Email
这是我的密码
'//Email copy code
Dim startCell As Range, fileRng As Range
Dim files As Variant, values() As Variant, values2() As Variant
Dim path As String, file As String, arg As String
Dim r As Long, i As Long
'Acquire the names of your files
With ThisWorkbook.Worksheets(1) 'amend to your sheet name
Set startCell = .Range("G17") 'amend to start cell of file names
Set fileRng = .Range(startCell, .Cells(.Rows.Count, startCell.Column).End(xlUp))
End With
files = fileRng.Value2
'Size your output array
ReDim values(1 To UBound(files, 1), 1 To 1)
'Populate output array with values from workbooks
For r = 1 To UBound(files, 1)
'Create argument to read workbook value
i = InStrRev(files(r, 1), "\")
path = Left(files(r, 1), i)
file = Right(files(r, 1), Len(files(r, 1)) - i)
arg = "'" & path & "[" & file & "]Sheet1'!R15C3"
'Acquire the value
values(r, 1) = ExecuteExcel4Macro(arg)
Next
'Write values to sheet
fileRng.Offset(, 20).Value = values
这段代码在我家的windows笔记本电脑上运行。然而,在工作中,我的IT部门禁用了CMD和其他shell函数的使用,我相信这段代码是用来从工作簿中获取值的
因此,此代码不会从列C15中获取值
有人能给我一个解决办法吗?谢谢这个解决方法怎么样:
arg = path & "[" & file & "]Sheet1'!R15C3"
'Acquire the value
values(r, 1) = arg
'values(r, 1) = ExecuteExcel4Macro(arg)
这样行吗?它生产什么?它应该生产什么?这似乎不起作用。它应该给我一个来自工作簿单元格C15的电子邮件地址。相反,您的代码为我提供了工作簿路径,请参见下面的“G:\BUYING\Food Specials\2”。规划\3。确认和交付\announces\2017\KW11\Multy[Multy KW11.17.xlsx]Sheet1'!R15C3可以再试一次吗?:)感谢您再次尝试,虽然代码看起来像是在一瞬间打开了cmd窗口,但与之前相同的结果是givenOk,原因之一是代码看起来很像我昨天给您的代码()-您至少应该参考您的源代码;另一方面,2天7个问题,只有两个被接受的答案,这是一个非常糟糕的展示,而不是这个网站是如何运作的。也许你应该对你要求别人做的所有工作表现出一些优雅。