excel - 如何查找()表格行?
问题描述
我试图找出一些简单的代码来将表的一行转换为数组,只使用表名和我知道的字符串在第一列。
foundRow = Worksheets("Data").ListObjects("tableName").Range.Find("searchTerm").Row + 1 'Offset 1 because of the header
myArray = Worksheets("Data").ListObjects("tableName").ListRows(foundRow).Range
我在即时窗口中测试了两行代码,它们执行了我想要的操作,但是当我将其放入代码时,我从第一行得到“运行时错误'9':订阅超出范围”。有人可以告诉我我做错了什么吗?或者也许有更好的方法来做到这一点?
解决方案
使用该DatabodyRange
属性来避免尴尬的偏移来解释标题,并Match()
在第一列中查找值:
Sub tester()
Dim m, lo As ListObject, myArray
Set lo = Worksheets("Data").ListObjects("tableName")
m = Application.Match("searchTerm", lo.ListColumns(1).DataBodyRange, 0)
If Not IsError(m) Then
myArray = lo.DataBodyRange.Rows(m).Value
End If
End Sub
推荐阅读
- c# - 在 CheckBox 类型的对象上找不到 WPF-MVVM SelectAll 属性
- python - 压缩来自不同项目的文件和文件夹并导入另一个项目
- javascript - 如何删除/跳过路径javascript中的前两部分
- flutter - 如何导航到屏幕并删除所有溃败历史[退出功能]
- javascript - 如何从字符串(在网站上)编写正确的列表?
- visual-studio-code - 由于 Nmake 错误,Raspberry pico 无法编译
- java - 上传时握手期间远程主机关闭连接
- mybatis - Mybatis insert into ... select from ... 返回主键
- pandas - 根据 2 个 pandas 列的比较在 matplotlib 中绘制一条线
- discord - 我如何制作一个响应特定用户的机器人?不和谐.py