【问题标题】:Using the contents of cell's as part of a file location in a macro使用单元格的内容作为宏中文件位置的一部分
【发布时间】:2016-12-30 12:52:46
【问题描述】:

这就是我所拥有的:

    Option Explicit

Sub EditWorksheet()
Workbooks.Open "Y:\Laurence\contents(J2)"
Sheets("contents(N2)").Select

End Sub

所以我想做的是让 VBA 调用单元格 J2 和 N2 的值,以决定打开哪个工作簿和工作表。供您参考,J2 可能包含例如“Forecast2016.xlsx”,N2 可能包含“MASTER”。为了清楚起见,对于这些单元格可能包含的所有内容,我确实在相关文件位置 (Y:\Laurence) 中有一个电子表格。

提前致谢!

【问题讨论】:

  • "Y:\Laurence\contents(J2)"更改为"Y:\Laurence\" & Range("J2")
  • 感谢您的快速回复。您是否有类似的板材零件替代品?即 Sheets("contents(N2)").Select
  • Sheets(Range("N2")).Select,你应该自己想出来的:)
  • 我确实尝试过,但不幸的是它返回错误。运行时错误 13 类型不匹配。你可能会说我有点新手......所以我希望你不介意我问你是否有诊断?

标签: vba excel macros


【解决方案1】:

问题是您传递的不是字符串,而是包含该代码的范围。这会导致运行时错误 13. 而不是

Workbooks.Open "Y:\Laurence\contents(J2)"
Sheets("contents(N2)").Select

试试

Workbooks.Open "Y:\Laurence\" & Sheets("Contents").Range("N2").Value
Sheets(Sheets("Contents").Range("N2").Value).Select

这会强制传递单元格的值,而不是对范围的引用。另请注意,我也对您引用的工作表进行了限定。正如您之前所拥有的那样,它会从当时碰巧打开的任何工作表中拉出 Range("N2")。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多