从关闭的工作簿中提取数据而不打开它

时间:2019-04-18 22:54:29

标签: excel vba

执行此问题的代码实际上正在工作,但是文件浏览器遇到了困难。当我执行代码时,文件浏览器在执行“ mydata”行时在预期的位置打开两次,然后在.Formula = mydata行中再次打开,我不知道为什么。

另外看来,放入单元格中的值是在我的代码的.Formula = mydata行而不是代码的mydata行中选择的工作簿中的值。

由于我不知道如何解决此问题,因此我没有做太多尝试。我正在研究关闭文件浏览器的命令。


Public Sub CreateCharts()

Dim ws As Worksheet
Dim wb As Workbook
Dim SelectedFiles As Variant
Dim mydata As String

    SelectedFiles = Application.GetOpenFilename(MultiSelect:=True)


        For i = LBound(SelectedFiles) To UBound(SelectedFiles)

            mydata = "='C:\Users\ME\Desktop\FOLDER\[SelectedFiles]CATS'!" & Range(Cells(1, 1), Cells(11, 21)).Address

            With ThisWorkbook.Worksheets("MASTER CHART").Range(Cells(1, 1), Cells(11, 21))

            .Formula = mydata 

            .Value2 = .Value2 

            End With

        Next i


End Sub

我希望文件浏览器只打开一次,然后实际上将选定的文件路径实现到单元格中。

1 个答案:

答案 0 :(得分:0)

没有openig工作簿就不能这样做。

您可以在excel中通过连接检索数据,并从excel上的表中获取数据。

使用ADODB库

U可以使用adodb.connection并在excel中创建一个连接字符串!