Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在项目列表上循环,仅显示符合条件的项目_Vba_Excel - Fatal编程技术网

Vba 在项目列表上循环,仅显示符合条件的项目

Vba 在项目列表上循环,仅显示符合条件的项目,vba,excel,Vba,Excel,我需要您的帮助来解决我在学习Excel VBA过程中遇到的基本练习。这就是: 有一个过山车列表,其中一列表示过山车的名称,另一列表示过山车的类型。我必须循环列表,直到空单元格,只选择那些过山车,类型为“木制”。sub应该以显示所有过山车名称的消息框结束,该消息框符合我们的“木制”标准(msgbox的每一行都包含一个名称) 因此,任何人都可以建议新学员如何处理上述问题……?这将在前1000行中运行,其中a列是过山车,b列是过山车类型。你可以把数字1000换成另一个数字,如果你愿意,也可以把它调小

我需要您的帮助来解决我在学习Excel VBA过程中遇到的基本练习。这就是:

有一个过山车列表,其中一列表示过山车的名称,另一列表示过山车的类型。我必须循环列表,直到空单元格,只选择那些过山车,类型为“木制”。sub应该以显示所有过山车名称的消息框结束,该消息框符合我们的“木制”标准(msgbox的每一行都包含一个名称)


因此,任何人都可以建议新学员如何处理上述问题……?

这将在前1000行中运行,其中a列是过山车,b列是过山车类型。你可以把数字1000换成另一个数字,如果你愿意,也可以把它调小

Sub Macro1()

'
Dim Rollers As String
For i = 1 To 1000
If Cells(i, 2) = "Wooden" Then Rollers = Rollers & vbNewLine & Cells(i, 1).Value
If Cells(i, 1) = "" Then MsgBox (Rollers): End
Next i
'
End Sub

我想补充一下巴林蒂的回答。这将使您使用最后一行,而不是硬编码1000

Dim sht As Worksheet
Dim LastRow As Long

Set sht = ThisWorkbook.Worksheets("Sheet1")

LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
然后你会有一个像这样的循环

For i = 1 To LastRow 

Next i

MsgBox Rollers

欢迎你应该知道,你已经向我们展示了你迄今为止所做的尝试,哪些有效,哪些无效。为了澄清@Nelly27281的评论,“为我编写此问题代码”在这里普遍不受欢迎。请发布您尝试过的任何内容,我们将很高兴帮助您学习如何旋转方轮。嗨,先生,很抱歉,谢谢大家,谢谢大家的帮助,但是,msgbox不会出现在算法的末尾…循环后添加msgbox Rollers如果使用我的方法获取要循环的最后一行,则可以排除单元格(i,1)=“”,然后msgbox(Rollers):从循环中结束。