在Excel中,一個Name
(在範圍內的情況下),可能意味着幾件事情:
定義名稱
例如,如果您選擇單元格「A1」,並在左上角屏幕的一角更改爲「A1」至"MyCellName"
您現在有一個Named Range
。這允許您在公式中引用"MyCellName"
而不是"A1"
。這對於恆定的輸入範圍或爲更大範圍定義名稱時特別有用。
命名範圍可以重疊
說,例如起見,你現在突出"A1-B3"
,改變Name
到"MyNamedRange"
。和以前一樣,你可以在公式中使用這個名字。您仍然可以參考"MyCellName"
以及"A1"
,儘管它在"MyNamedRange"
之內。
自動名稱
曾經創造了一個Table
或PivotTable
?實質上,這些也成爲名稱。他們可以用他們的名字來引用。例如,如果您創建表格,則默認名稱爲Table1
。在公式中,您可以使用Table1
(對VLOOKUPS超級有用)引用整個表格。
默認名稱
最常見名稱是純範圍。 "A1"
是指向單元格"A1"
的名稱。每個細胞都一樣。即使已定義名稱的單元格仍然可以通過它們的範圍引用來引用。
的文章
所有文章說的目的是,你可以使用指的是一系列的標準方法是指一個範圍。如果我做Application.Evaluate "MyNamedCell"
它將評估"A1"
,如果我做Application.Evaluate "A1"
它將再次評估"A1"
。
對於評估變量,實際發生的是Application.Evaluate
首先解析範圍參考(確定您所傳遞參數的含義),然後對該對象進行操作。只要您通過可評估的有效Range
參考,它就會對其進行評估。這意味着你可以把一堆範圍引用放到一個類的數組中,這個類的屬性是...看看我要用這個去哪裏? 使用任何你想要的,但最後它需要知道範圍在哪裏。
編輯:關於您更新的'名稱是什麼?'的編輯,您需要一些可以傳入和評估的字符串。非常簡單。
Dim SomeFoo as Range
Set SomeFoo = ThisWorkbook.Sheets(1).Range
' Isnt what we need since evaluate wants a string
' NOTE: This will implicitly take the .Value property of SomeFoo and
' try to evaluate that. This is fine, but bad coding practice (assuming SomeFoo's value is the address)
Application.Evaluate(SomeFoo).Value = "SomeString"
' The address can be successfully evaluated as a string
Application.Evaluate(SomeFoo.Address).Value = "SomeString"
' If SomeFoo contains an address/name it can be successfully evaluated
Application.Evaluate(SomeFoo.Value).Value = "SomeString"
https://support.office.com/en-gb/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64#bmsyntax_rules_for_names? – pnuts
在鏈接下提供的示例清楚地顯示了可以使用哪種參數來使此方法正常工作。我不明白混淆的地方。 – Sgdva
@sgdva是的,也許我不清楚這個問題,但在**備註**部分它有一行「*定義的名稱。您可以在宏的語言中指定任何名稱。*」 - 這是令人困惑的我(以及我所引用的摘錄中提到的「命名約定」)所談論的 - 一些神祕的「宏觀語言」)。也許* pnuts *'的鏈接將揭示一些亮點,但我會看看這個。 – Greedo