-1

我有一个每日仪表板文件,我每天从 5 个带有宏的不同文件中提取数据。宏工作正常,但它询问我应该为特定步骤选择哪个文件:(Workbooks.Open vFile出现一个窗口,我只选择文件)。这些文件每周或每月都会更改一次,所以我想做的是将源插入特定的单元格,宏不会要求我提供文件,而是将源带到那里。

这可能吗?

代码(我没有放整个代码,而只是我想要更改的部分)

vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 

Workbooks.Open vFile

然后宏是指活动文件和工作表。一旦我复制了所有数据,另一个窗口会提示我选择第二个文件等。

vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select Front End Tracker ", "Open", False)

Workbooks.Open vFile

我想要更改的是,我希望宏从 Excel 工作表中的特定单元格中获取文件的源和名称,而不是选择文件的窗口。关于如何做到这一点的任何想法?

4

1 回答 1

2

答案很简单,但我会尽力为您提供一些选择。

A)如果您在单元格 A1 中输入完整的路径名和文件名,例如:

c:\users\user_name\Documents\files\moj plik.xlsx

那么你只需要改变你的代码如下:

'comment this line by adding ' at the beginning
'vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 
'change next line by adding reference to the cell
Workbooks.Open Range("A1")
'or with reference to sheet name and range A1- change according to your situation
Workbooks.Open Sheets("put here sheet name").Range("A1")

B)如果您只想引用文件名,则需要以某种方式定义文件的路径。如果您的单元格 A1 只有文件名,例如:

moj plik.xlsx

那么您的代码将相应更改:

'comment this line by adding ' at the beginning
'vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 
'change by adding reference to the cell and path constant
Dim xlsPath as String
    xlsPath = "c:\users\user_name\Documents\files\"
'change above accordingly to what you have
Workbooks.Open xlsPath & Range("A1")
'or with reference to sheet name and range A1- change according to your situation
Workbooks.Open xlsPath & Sheets("put here sheet name").Range("A1")
于 2013-07-12T13:24:37.860 回答