gpt4 book ai didi

VBA Excel - 使用单个变量将多个值分配给数组

转载 作者:行者123 更新时间:2023-12-02 16:00:40 26 4
gpt4 key购买 nike

对于我的问题,我检查了存档,有一个类似的线程,但我的问题略有不同,我似乎无法调整我的代码以使其工作。类似的在这里:Excel 2010 VBA: How to store an array of worksheets as a variable?

我正在尝试使用变量将一系列选项卡分配给数组。该变量使用另一张工作表上的单元格中的值。

Dim VendorTabsArray As Variant

VendorTabs= Sheets("OtherSheet").Range("A1").Value
VendorTabsArray = Array(VendorTabs)

ActiveWorkbook.Sheets(VendorTabsArray).Select

我希望用作变量放入选项卡数组的单元格 A1 中的实际值是“EBS - 添加用户”、“EBS - 修改用户”、“EBS - 删除用户”、“EBS -重新启用用户”、“EBS - 密码重置”、“EBS - 访问配置文件角色”、“EBS - 报告”

这给了我一个下标超出范围的错误。

当我向 VendorTabArray 添加监视时,它似乎无法识别变量中的引号和逗号,只是将整个选项卡列表添加到第一个数组位置,而不是将它们分开。

有谁知道如何使用变量中的数组来选择这些选项卡,其中该变量是包含所有必需选项卡的单元格引用?

非常感谢任何帮助,因为它让我感到困惑。

最佳答案

从一些有用的小事情开始:

Public Sub TestMe()

Dim someArray As Variant
someArray = Array("EBS - Add User", "EBS - Modify User")
ActiveWorkbook.Sheets(someArray).Select

End Sub

然后尝试读取工作表并定位问题:

enter image description here

Public Sub TestMe()

Dim someString As String
someString = Range("A1")

Dim someArray As Variant
someArray = Split(someString, ",")

ActiveWorkbook.Sheets(someArray).Select

End Sub

问题在 someArray 的值中可见:

enter image description here

那么你需要一些“清理”。因此,您创建了第二个数组,它删除了无用的 " 并修剪了一些值:

Public Sub TestMe()

Dim someString As String
someString = Range("A1")

Dim someArray As Variant
someArray = Split(someString, ",")

Dim someNewArray As Variant
ReDim someNewArray(UBound(someArray))
Dim cnt As Long

For cnt = LBound(someNewArray) To UBound(someNewArray)
someNewArray(cnt) = Trim(Replace(someArray(cnt), """", ""))
Next cnt

ActiveWorkbook.Sheets(someNewArray).Select

End Sub

现在可以了:

enter image description here

关于VBA Excel - 使用单个变量将多个值分配给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762485/

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