gpt4 book ai didi

vba - Excel VBA中的 "Name"是什么意思

转载 作者:行者123 更新时间:2023-12-03 00:20:51 24 4
gpt4 key购买 nike

MSDN documentation ,它表示 Application.Evaluate 方法采用单个参数,该参数称为 Name 且属于 Variant 数据类型。 Name 在此上下文中含义的描述是:

A formula or the name of the object, using the naming convention of Microsoft Excel. The length of the name must be less than or equal to 255 characters.

*强调我自己的

Excel 命名约定到底是什么意思?哪些规则对其进行管理?这些规则记录在哪里?

在本文的备注部分中,有一些可以使用的Name可能类型的示例 - 但其中一种类型可以在方法中使用是

Defined names. You can specify any name in the language of the macro.

这引出了一个问题; “宏语言中的名称”定义为什么?

或者将其与我试图解决的特定编程问题更紧密地联系起来; Application.Evaluate(blah) 中的 blah 可以使函数正确评估吗?

最佳答案

在 Excel 中,名称(在范围的上下文中)可以表示一些含义:

定义的名称

例如,如果您选择单元格“A1”并在屏幕左上角将“A1”更改为“MyCellName”,您现在就有了一个命名范围 。这允许您在公式中引用 "MyCellName" 而不是 "A1"。这对于恒定的输入范围或为较大范围定义名称时特别有用。

命名范围可以重叠

举例来说,您现在突出显示“A1-B3”并将名称更改为“MyNamedRange”。您可以像以前一样在公式中使用此名称。您仍然可以引用 "MyCellName" 以及引用 "A1",尽管它位于 "MyNamedRange" 内。

自动名称

曾经创建过表格数据透视表吗?从本质上讲,这些也成为名称。可以通过他们的名字来提及他们。例如,如果您创建一个表,则默认名称为 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"

关于vba - Excel VBA中的 "Name"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45443323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com