我已经为Excel 2010编写了一个宏,它为包含任何文件和子文件夹的文件夹建立索引。这样做的目的是管理从包含数百个文件的文件夹目录中提取特定细节,其中只有一些文件是Excel文件,而其中只有一些文件与此细节相关。Excel VBA - 选择确定弹出菜单/对话框
该宏提供了一些基本的细节和文件的超链接(包括xls,doc,pdf等)。然后,vba代码将插入一个单元格公式,以从工作簿的特定位置(不打开它们)提取单个单元格值,并在其中存在Excel文件并生成#Ref!否则错误。由于单元格公式是通过FileItem.Path和文本操作创建的,因此该公式始终引用“摘要”工作表,以适合有意义的文件。
问题是剩余的Excel文件中没有包含此名称的工作表,该名称提示Excel为用户提供弹出对话框“选择表”,以供用户手动从选项中进行选择。我需要一种方法在vba代码中进行管理。我可以管理一些潜在的结果,包括选择OK来每次选择第一个选项,取消和忽略请求,跳过这些实例等,但是我不能让宏反复中断用于用户输入。
我已经尝试在代码中的各个点插入Application.DisplayAlerts = False,但它不会阻止该对话框。
任何帮助/建议,非常感谢。
感谢
编辑
我原本:
Cells(r, 5).Formula = "='" & Left(File.Path, InStr(File.Path, File.Name) - 1) & "[" & File.Name & "]Summary'!$D$3"
...产生下面的单元格的公式:
='C:\Documents and Settings\[TEST]Summary'!$D$3
我认为不可能从vba代码访问关闭的工作簿,所以这可以为我工作。我只需要对Range的语法做一点澄清。目前给我一个错误'对象'_Application'失败'错误1004方法'范围' 我也尝试创建一个文本变量来保存路径并在Range()中使用,但没有成功。 有什么建议吗? – kavmeister 2011-03-03 17:30:22
由于我没有明确的文件路径或名称(由于子文件夹加上不一致的命名约定),我必须动态构建位置。因此,对于您的解决方案,我不确定适当的方括号,撇号和引号需要使用此代码。我一直在尝试使用以下公式的变体: 'Application.Range(“[”&FileItem.Path&“] Summary!$ D $ 3”)。Value' ..它的计算结果如下: 'Application.Range([C:\ Documents and Settings [TEST] Summary!$ D $ 3).Value' – kavmeister 2011-03-03 17:31:21
如果有人能够指导我如何使用StackOverflow来评论/回复将会有帮助。新手。 – kavmeister 2011-03-03 17:32:11