excel - for next 循环无法为变量分配值 - VBA

标签 excel vba for-loop

我正在检查在 3 个不同组合框中选择的 3 个值是否在某一行内。如果是,则将该行号分配给一个变量,如果不是,请检查下一行。范围内的所有单元格都填充了数据,并且消息框显示了正确的值(仅用于检查目的),但 If 语句没有移动到 selectedrow = r在下面的代码中。

Dim Project, licence, state As String
Dim selectedrow As Integer
Dim LastRow As Integer
Dim r As Integer


Project = cmb_Project.Value
licence = cmb_Licence.Value
state = cmb_State.Value


LastRow = Worksheets("Entitlements").Range("A" & Rows.Count).End(xlUp).row


    For r = 3 To LastRow
    MsgBox (Worksheets("Entitlements").Cells(r, 1).Value)
    MsgBox (Worksheets("Entitlements").Cells(r, 7).Value)
    MsgBox (Worksheets("Entitlements").Cells(r, 6).Value)
        If Worksheets("Entitlements").Cells(r, 1).Value = Project And _
            Worksheets("Entitlements").Cells(r, 7).Value = licence And _
            Worksheets("Entitlements").Cells(r, 6).Value = state Then

            selectedrow = r
         End If
    Next r

我猜我犯了一个愚蠢的错误,但是任何关于如何解决问题的建议都将不胜感激。

谢谢

最佳答案

这里可能不是问题,但请注意 Project 和 License 不是字符串变量,而是变体。当你Dim一行中有多个变量,每个变量名必须有自己的类型。如果没有给出类型,则默认为 Variant。

所以,试试

Dim Project as String, license as String, state as String

或者,使用三个 Dim声明而不是一个。

关于excel - for next 循环无法为变量分配值 - VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42847786/

相关文章:

excel - 动态调整 VBA 用户定义类型的上限大小

将所有数据返回到新工作表的 Excel VBA 函数

vba - 在VBA中删除文件

excel - VBA - 如何从单个单元格复制数据并将其粘贴到合并单元格中

vba - 当电子表格中出现错误时,如何停止触发基于事件的 VBA 代码?

java - 哪个 for 循环头性能更好?

excel - 可以用excel引用外部宏吗?

vba - 自动打开子 VBA

Java - 从列表中显示 n 组记录?

java - 在新的 for 循环中获取索引