excel - 出现错误说明“无法获取 Range 类的 FindNext 属性”
问题描述
我正在处理的程序必须处理具有多个重复列名的数据,所以我想寻找一个字段名称“端口类型”并执行一些检查,如果不满意则移动到下一个重复列。为了完成它,我尝试使用 FindNext 功能。
'Application.ScreenUpdating = False
duplicateBook.Sheets(1).Activate
duplicateBook.Sheets(1).Select
Dim lr As Integer
Application.ScreenUpdating = False
ActiveSheet.AutoFilterMode = False
Rows("9:9").Select
Rows("9:9").Find("Charge Type", LookIn:=xlValues, lookat:=xlWhole).Select
chargetypefield = Selection.Column
Rows("9:9").Find("Product", LookIn:=xlValues, lookat:=xlWhole).Select
ProductField = Selection.Column
Rows("9:9").Find("Feature", LookIn:=xlValues, lookat:=xlWhole).Select
Featurefield = Selection.Column
Rows("9:9").Find("Service Id(CP Only)", LookIn:=xlValues, lookat:=xlWhole).Select
serviceidField = Selection.Column
Rows("9:9").Find("CIRCUIT ID", LookIn:=xlValues, lookat:=xlWhole).Select
CircuitIDField = Selection.Column
Rows("9:9").Find("Ignored", LookIn:=xlValues, lookat:=xlWhole).Select
ignoredField = Selection.Column
Rows("9:9").Find("Country", LookIn:=xlValues, lookat:=xlWhole).Select
countryField = Selection.Column
'################
'On Error Resume Next
With duplicateBook.Sheets(1).Rows("9:9")
Set selectCell = .Find("Port Type", LookIn:=xlValues, lookat:=xlWhole)
firstVal = selectCell
Do
If selectCell.End(xlDown).Value = "Ethernet" Or selectCell.End(xlDown).Value = "TDM" Or selectCell.End(xlDown).Value = "MVIC" Then
portypeField = Selection.Column
Exit Do
Else
**Set selectCell = .FindNext("Port Type")**
End If
Loop While selectCell.Column <> firstVal
End With
解决方案
正如 PEH 所说,避免使用 SELECT。您在录制宏时会遇到这种情况,但这可能会导致许多问题。
然后,除非工作表的所有列都有数据,否则我建议定义第 9 行和工作表的 UsedRange 的交集(例如,Intersect({sheet}.Rows(9),{sheet}.UsedRange)
或{sheet}.UsedRange.Resize(1).Offset(8)
(当然,{sheet}是您更喜欢指定适用的工作表对象)。
接下来,您可以使用 For Each 或使用 Find 方法迭代该有限行,但无论哪种方式,您都需要在对其进行操作之前测试您的结果范围“Is Nothing”(最好再次,而不是通过选择它)以获得列号和/或找到该列中的最后一个值(例如,仅在列上使用 Find 方法来查找您的密钥,“以太网”或“TDM”)
推荐阅读
- javascript - vue 路由器滚动行为提示路由值
- google-apps-script - 我如何通过谷歌脚本从谷歌表中获取一天
- apache-spark - 如何在不知道 Spark 中的任何特定值的情况下根据 GroupBy 列的值选择列
- css - 如何禁用 Vuetify 数据表的悬停效果?
- javascript - 如何使用 highchart 导出带有自定义标记的仪表图?
- python - IndexError:迭代两个 webelements 列表时列表索引超出范围
- html - Bootstrap 列不会填充剩余高度
- powershell - Powershell复制文件信息
- image - 在颤振项目中上传图像时项目挂起
- sql - elasticsearch canvas,是否有文本输入框查询索引?