excel - 将变体转换为字符串
问题描述
我的主工作表上有一个列表,其中包含工作簿中工作表的名称。我正在尝试迭代它们,但 Worksheets 函数需要一个字符串,并且列表中的值返回 Variant 类型。当我尝试使用 Variant 表达式访问工作表时出现类型不匹配错误。如何将 Variant 转换为 String 或者有其他方法可以做到这一点?
Dim allws As Range
Set allws = Worksheets("Summary").Range("A4:A21").Columns(1)
Dim str As String
str = allws.Item(1).Value 'Type mismatch
Set ws = Worksheets(str)
解决方案
这需要一个数组。评论中的更多细节:
Dim allws As Range
Set allws = Worksheets("Summary").Range("A4:A21") ' no need for .Columns
Dim arr() as Variant
arr = allws.Value ' read the value into a 2D Variant array
Dim i as Long
For i = Lbound(arr, 1) to Ubound(arr, 1)
Dim ws as Worksheet
Set ws = Worksheets(arr(i))
Next
推荐阅读
- php - 如何回声
- c++ - 如何在 C++ 上执行 FreeConsole() 但更快
- spring - JPA 问题 @OneToMany(MappedBy)
- java - 用于 Cloudinary 上传的 Spring @Async 不起作用 - 程序无异常停止
- firebase - Firebase Firestore 出现“本机”AssertionError_throwNew”错误
- java - 使用 jOOQ 对大型 SELECT 查询进行单元测试
- javascript - Youtube嵌入视频突然停止工作
- asp.net-core - 如何使 asp-route-{value} 标签助手从变量中获取值?
- javascript - 如何在回答上一个问题后创建一个询问新随机加法问题的循环
- algorithm - 使用 PCL 进行部分点集配准的算法