我有類似如下的代碼,我想添加命名範圍哪個地址與其他命名範圍連接,下面的代碼不起作用,在此先感謝所有想法。命名範圍與來自另一個命名範圍的地址
ActiveWorkbook.Names.Add _
Name:="somerange", _
RefersTo:="=Sheet1!Cells(Range("namedrange1").row-5,Range("namedrange2").column)"
我有類似如下的代碼,我想添加命名範圍哪個地址與其他命名範圍連接,下面的代碼不起作用,在此先感謝所有想法。命名範圍與來自另一個命名範圍的地址
ActiveWorkbook.Names.Add _
Name:="somerange", _
RefersTo:="=Sheet1!Cells(Range("namedrange1").row-5,Range("namedrange2").column)"
提供namedrange1被定義命名的區域,你只是把它寫你將一個正常的公式:
ActiveWorkbook.Names.Add "somerange", "=OFFSET(Sheet1!NamedRange1,-5,0,1)"
在你的代碼可以參考兩個獨立的表 - Sheet1.Cells和ActiveSheet.Range - 如果您沒有明確指出工作表名稱,它將使用活動工作表。 你在寫:"=Sheet1!Cells(ActiveSheet.Range("namedrange1").row-5,ActiveSheet.Range("namedrange2").column)"
編輯: 另外你的代碼似乎是公式和VBA代碼的組合 - Sheet1!被用來指另一片在公式中,細胞是VBA類型引用作爲是.Row和.COLUMN
編輯2: 您還可以使用: ActiveWorkbook.Names.Add "SomeOtherRange", "=" & Sheet1.Range("NamedRange1").Offset(-5).Resize(1).Address
但這將硬編碼地址 - 當您檢查您的命名範圍如下所示:=Sheet1!$I$5
(如果您的命名範圍以單元格$ I $ 10開始)。
隨着定義爲RefersTo:=Sheet2!$B$7
與工作簿範圍命名範圍namedrange1並與工作簿範圍定義爲RefersTo:=Sheet3!$D$10
命名範圍namedrange2,這將定義名爲somerange與RefersTo:=Sheet1!$D$2
與工作簿範圍新的命名範圍。
With ActiveWorkbook
With .Worksheets("Sheet1")
With .Cells(Range("namedrange1").Row - 5, Range("namedrange2").Column)
.Name = "somerange"
End With
End With
End With
「namedrange1」/「namedrange2」的定義在哪裏?你確定它可以從活動工作表訪問嗎? [它假定你想要的活動工作表,因爲你沒有告訴範圍功能從哪裏拉] –
最後一行被標記爲紅色,它甚至不能執行 – Maciej