excel - Excel VBA:当一个字符串是单元格中包含的文本值时,如何在 While 语句中使用 StrComp?
问题描述
返回错误的代码是以下内容的第一行:
While StrComp(selectedRecipe, dataSheet.Cells(i, 1)) <> 0
recipeRow = recipeRow + 1
i = i + 1
Wend
我得到的调试与 While 语句行本身存在问题。此代码包含在用户窗体上的 OK 按钮单击事件下,其中 selectedRecipe 定义为主工作表子中的公共字符串变量。“i”在这个私有子中被定义为一个整数。基本上,代码是在从下拉组合框中选择 selectedRecipe 后查找工作表的哪一行包含 selectedRecipe 中包含的字符串值(selectedRecipe 正确返回并且没有与之相关的问题)。我假设我需要在“dataSheet.Cells(i,1)”前面有某种“转换”命令来将单元格值强化为字符串,但我不确定。谢谢!
解决方案
1) 确保 dataSheet 实际设置为有效工作表。2)正如共产国际所说,您需要从 1 开始,因为 Excel 是基于 1 而不是基于零。3)您需要确保不会溢出行数:
Public Sub CheckRecipe()
Dim selectedRecipe As String
Dim i As Long
selectedRecipe = "Test"
i = 1
While StrComp(selectedRecipe, ThisWorkbook.ActiveSheet.Cells(i, 1).Value) <> 0 _
And i < ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
i = i + 1
Wend
End Sub
推荐阅读
- c# - C#在点击时隐藏和显示按钮
- jenkins - 在 postbuild-plugin 中访问 jenkins 构建工件
- python - Identify all instances of problematic quotation marks
- c++ - boost.asio 和 unpv 中的数据包 unp.h 有什么区别?
- cassandra - 如何将 sstablesplit 添加到现有的 Cassandra 集群?
- haskell - Cabal / Stack 忽略自定义安装脚本的 ghc 选项
- mysql - 如何在 MySQL 中以通用格式存储电话号码
- pjsip - pjsip 是否支持发送和接收 DTMF 音?
- php - 我可以将 php 变量传递给 Laravel 中的 Html 文件吗
- python - 在 Bash 脚本中计算 ISO-8601 期间的日期