gpt4 book ai didi

excel - 使用数组引用名称属性

转载 作者:行者123 更新时间:2023-12-04 20:16:25 25 4
gpt4 key购买 nike

我正在做一个项目,该项目需要我根据数组中某个位置的值来选择工作表。我已填充 desArr() (字符串类型)具有值和 desArr(0)包含我要引用的工作表的名称。为了避免用户更改选项卡名称和弄乱代码的问题,我试图引用工作表的 CodeName。

通常,我可以这样做:

ThisWorkbook.Worksheets(Import.Name) 

在哪里 Import(Name) 下指定VB 编辑器中的属性。但是,我现在想可变地引用该名称,如在输入中取决于 desArr(0) 的值。 .我尝试执行以下操作但无济于事:
ThisWorkbook.Worksheets(desArr(0).Name)

ThisWorkbook.Worksheets(desArr(0) & ".Name")

有谁知道如何解决这个问题?

最佳答案

只需使用:

Import

这是引用工作表对象而不需要知道其 Name 的方法。属性(property)。只需使用它的变量/对象名称。以上等价于,但更复杂的是,
ThisWorkbook.Worksheets(Import.Name) 

您所说的“代码名称”和 (Name) “属性(property)”不是属性(property)。它只是对象变量的名称。从我可以从您的问题中推断出,您的工作表对象称为 Import所以就用那个。

编辑:

很难理解你在问什么;澄清一下:

如果我理解正确,您有一张名为“Import”的工作表,并且您希望能够防范这种情况:

enter image description here

好的,一些用户认为重命名工作表是个好主意。请注意,这改变了工作表对象的 Name属性值为 "User-input crap" . Name属性和选项卡中写的东西总是相同的;它们是一样的;它们是一对一的。

但是,工作表对象本身仍称为 Import ,或者任何以前的东西。 (默认情况下它是 Sheet1 ,但也许您在“属性”窗口中更改了它。)请参阅:

enter image description here
不管用户输入的废话如何,我仍然可以说,例如:
Import.Cells(1, 1).Value = "frog"

我也可以这样说,这是无用的复杂但完全等价的:
ThisWorkbook.Worksheets(Import.Name).Cells(1, 1).Value = "frog"

我也可以这样说:
ThisWorkbook.Worksheets("User-input crap").Cells(1, 1).Value = "frog"

但为此,我必须知道用户在工作表选项卡中输入了什么,而我不知道。

关于excel - 使用数组引用名称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085574/

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