excel - 嵌套 For 循环停止中游
问题描述
在下面的代码中 LastCellR = 49 并且 LastSheet 是 61(即工作簿中有 61 个工作表,活动工作表的第 1 列中有 49 个客户名称)代码运行良好,直到我达到 46 并且 CS 达到 61。然后在调试,代码停止并突出显示“If Worksheets(CS).Name = ClientName Then”。
这里的目标是查看客户名称列表并确定它们是现有客户还是新客户。因此,我只需获取每个客户的姓名并搜索工作簿中的工作表名称。
任何想法为什么它停止死在它的轨道上?
感谢您提供的任何见解。
For i = 2 To LastCellR
ClientName = Cells(i, 1).Value
If Trim(ClientName) = "" Then Exit Sub
' Check for existing client
For CS = 1 To LastSheet
If Worksheets(CS).Name = ClientName Then
NewClient = False
Exit For
End If
Next CS
Next i
解决方案
不是您问题的答案,可能是检查工作表的另一种选择
Public Function WorksheetExists(strName As String) As Boolean
On Error GoTo eHandle
Dim ws As Excel.Worksheet
WorksheetExists = True
Set ws = ThisWorkbook.Worksheets(strName)
Set ws = Nothing
Exit Function
eHandle:
WorksheetExists = False
Resume Next
End Function
然后newclient = not worksheetexists(clientname)
推荐阅读
- tensorflow - 保存 SavedModel:ValueError:至少两个变量具有相同的名称
- html - 2列文本和图像填充问题
- arrays - 在 ReactJS 中将图像数组导入为缩略图
- c# - ItemsControl 未虚拟化
- python - python3的最大整数值
- laravel-5 - Vue:发出的事件没有被拾取
- swift - 为什么 self 与 init 一起使用而不是 color
- dialogflow-es - 意图样本话语(训练短语)结构 - 哪个最好?
- angularjs - 将 ng-model 数组值与所选选项的 ng-options 对象映射
- c - 为什么在 C 中访问数组有限制?