Excel VBA :How to use StrComp in a While statement when one string is a text value contained in a cell?

标签 excel vba

返回错误的代码是以下内容的第一行:

    While StrComp(selectedRecipe, dataSheet.Cells(i, 1)) <> 0
             recipeRow = recipeRow + 1
             i = i + 1
    Wend

我得到的调试与 While 语句行本身存在问题。此代码包含在用户窗体上的 OK 按钮单击事件下,其中 selectedRecipe 定义为主工作表子中的公共(public)字符串变量。 “i”在这个私有(private)子中被定义为一个整数。基本上,代码是在从下拉组合框中选择 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

关于Excel VBA :How to use StrComp in a While statement when one string is a text value contained in a cell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53403494/

相关文章:

excel - 如果 EnableCancelKey 未禁用,为什么 VBA 会停止

python - 如何测试多个命令行参数 (sys.argv

vba - Excel VBA 输入框范围选择按钮

vba - 在 VBA 宏中计算和关联 XML 数据

vba 将周数(和年份)转换为日期?

excel - 如何根据相似值合并单元格 - Excel 2010

excel - 如何在excel vba中添加段落或中断

vba - 如何使用参数从 MS Access 打开 URL

excel - 在 Excel 中创建自定义查找函数时遇到问题。匹配和连接范围的问题

android - Room - 在运行时(在用户端)添加或删除列?