我尝试让for循环遍历一列来查找"No“,如果没有找到"No”,它会在另一个单元格中输出"Yes“。所以我的想法是有一个for循环,然后是一个if语句,声明如果单元格说"Yes“或"No Requirement”,则继续查找"No“,如果没有找到"No”,则输出"Yes“,如果找到,则循环停止并输出"No”。
我正在制作一个从同一个excel工作簿的不同工作表中提取数据的工具。
Sub PleaseWork()
Dim matrix(i, j) As Double
For i = 26 To 33
For j = 8 To 8
If Worksheets("Calculations").Range(i, j) = "Yes" Or "No Requirement" Then
Worksheets("Calculations").Range("H33").Value = "Yes"
Next i
Else
Worksheets("Calculations").Range("H33").Value = "No"
End If
End Sub这段代码甚至不会运行,每次我尝试运行它时都会得到一个编译错误。我是VBA的新手,我知道这可能是超级简单的,但我就是不能理解。
发布于 2019-01-16 03:07:49
Next i需要在您的If-End If之外,并且您需要在For i循环中添加Next j,以便代码能够运行。此外,如果使用j = 8,您的第二个循环将只运行一次,您可以完全消除这种情况。
说起来容易多了
For i = 26 To 33
If Worksheets("Calculations").Cells(i, 8) = "Yes" Or Worksheets("Calculations").Cells(i, 8) = "No Requirement" Then
Worksheets("Calculations").Range("H33").Value = "Yes"
Else
Worksheets("Calculations").Range("H33").Value = "No"
End If
Next i发布于 2019-01-16 03:19:23
如果你只看一列,我不确定你为什么要在这里使用矩阵。
下面的代码将检查列(如果您愿意,我可以将其设置为动态范围),并在第一个值为"No Requirement“的单元格停止-然后输出包含值和"No”的单元格的地址,并退出循环。
Sub RandomCol()
For Each cell In Worksheets("Calculations").Range("A1:A50")
If cell.Value = "Yes" Or cell.Value = "No Requirement" Then
ElseIf cell.Value = "No" Then
Range("H33").Value = (cell.Address + " " + "No")
Exit For
End If
Next cell
End Sub发布于 2019-01-23 13:39:55
我希望这能帮到你。
以下内容应该适用于您的目的:
Sub RunIt()
' A, E, 1, 5
PleaseWork 1, 5, 1, 5
End Sub
Sub PleaseWork(intFromCol As Integer, intToCol As Integer, intFromRow As Integer, _
intToRow As Integer)
Dim intI As Integer
Dim intJ As Integer
Dim blnFoundNo As Boolean
Dim strOut As String
strOut = "Yes"
blnFoundNo = False
For intI = intFromCol To intToCol
For intJ = intFromRow To intToRow
' Row , Col
With Worksheets("Calculations").Cells(intJ, intI)
If LCase(Trim(.Value)) = "no" Then
strOut = Replace(Cstr(.Address), "$", "") & " = No"
blnFoundNo = True
Exit For
End If
End With
Next intJ
If blnFoundNo Then Exit For
Next intI
Worksheets("Calculations").Range("H33").Value = strOut
End Subhttps://stackoverflow.com/questions/54205158
复制相似问题