Excel中的标签与值

时间:2012-07-02 20:10:29

标签: excel vba

我正在尝试创建一个来自债券评级的映射" AAA,AA +,AA,AA-,..."数字等价物" -29,-28,-27,-26,......"

我希望单元格的值与标签不同。例如,我希望标签为AAA的单元格的底层值为-29。这将使我能够使用Excel过滤来选择具有债券评级>的行。 [阈]。数字等效/映射为我提供了一种方法。

这个值/标签区别在Excel中是否可能?如果没有,如果我希望通过我自己的自定义排名应用过滤,我有哪些选择?

1 个答案:

答案 0 :(得分:0)

我个人会选择Tim William使用VLookup的解决方案,因为它是最容易的。 或者,在使用VBA时,通过在二维数组中加载单独的列并通过在循环数组时设置条件语句来检索“标签”。

只是为了回答你的问题,你可以给单元格(或范围)一个“名称”,这就是为什么它们被称为“命名范围”。 理论上您可以为单元格赋值-29,并根据其值检索范围的名称。 请注意,命名范围仅允许字母,数字(不以数字开头)和下划线,因此您需要使用诸如“AA_PLUS”或“AA_MINUS”之类的名称。 假设您将名称“AA”添加到工作簿的工作表(1)中的单元格(1,1),您将检索命名范围:

dim sName as string

sName = thisworkbook.sheets(1).cells(1,1).name.name
debug.print sName

对值进行排序后,仍然可以正确检索名称,如果需要,可以将它们加载到数组中。 虽然好处是您不需要预留工作表空间来添加额外的列,并且它增加了灵活性(命名范围可以放在任何位置,因为名称贴在单元格上),我不推荐这种方法,当你是处理大量数据。

一般来说,它们的使用方向与我刚才解释的相反。 首先,您定义范围的名称,而不是检索其值,而不是相反(尽管没有规则禁止它并且代码可用)。 命名范围提供了灵活性,并且通常是使工具动态化的必要条件。我的意思是在某种意义上说,范围可以移动,而VBA仍然可以正确地检索它们的值。

好吧,另一个“标签类型解决方案”是为每个单元格添加注释(其内容可以设置并以编程方式获得),但我再也没有使用过这种方法,对于长数据结构我不会推荐它。

sName = thisworkbook.sheets(1).cells(1,1).comment.text