0

看来这个问题也包含正确的答案,由于某些深不可测的原因,Excel 不会毫无错误地执行它。所以问题发生了一些变化:

为什么是 1004?

基本上我想使用类似的东西(这给我1004):

Dim rngTmp As Range
For Each offer In SanitizedConstInfo("offers").keys()
    Set rngTmp = Sheets(offer).Range(Cells(1, 1), Cells(2, 2))
    ActiveWorkbook.Names.add name:=offer, RefersToR1C1:=rngTmp
    ActiveWorkbook.Names(offer).RefersToRange.Cells(1, 1) = offer
Next offer

offer 是包含一些名称的字符串(是的,我希望工作表和命名范围都具有相同的名称 - 至少现在是这样)。会有未知数量的,所以我只是循环for each

Q:如何添加工作表信息RefersToR1C1,让命名范围指向某个工作表?(我知道'Sheetname'!A1:A10 语法,但如果可能的话,我想用 Sheet/Range/Cell 对象来做到这一点)

4

1 回答 1

1

这是因为你没有完全限定你的范围,你需要明确:

With Sheets(offer)
    Set rngTmp = .Range(.Cells(1, 1), .Cells(2, 2))
End With

单元格前的点很重要。

于 2014-03-24T14:46:38.607 回答