RANGE()只在模块中工作? (Excel VBA)

时间:2016-12-07 18:10:27

标签: excel vba excel-vba

所以我基本上将代码从一个工作簿转移到另一个工作簿。我在两种情况下通过文件选择器打开文件代码是相同的:

Private Sub ImportData_Click()
(... irrelevant stuff...)

With fileDialog
'The file stores the last path chosen by the user. Goes there first. 
'Otherwise, defaults to the workbook's location because we know it exists

    If file_exists(Range(ThisWorkbook.Names("cst_last_import_folder")).Value) Then

(... more irrelevent stuff...)

End Sub

Range()方法在新工作簿中失败(运行时1004错误),但在旧工作簿中失败。我花了一段时间才弄明白 - 但那是因为在旧书中,这部分实际上是在一个模块中完成的。在新工作簿中,这些代码直接托管在工作表上。

所以我知道它是如何失败的 - 例如如果代码驻留在工作表上,则Range()方法不起作用。但为什么会这样呢?例如。是什么原因导致该方法只有在工作表上托管时才会失败?还是有一个更为根本的原因,我失踪了?

0 个答案:

没有答案