Tag: do while

while循环嵌套if语句vba只打印第一个“TRUE”值并停止

我正在尝试创build一个Do While循环,其中包含一个if语句。 根据If语句的TRUE / FALSE值,它可以进入另一个(子)Do While循环,或者只是循环回到第一个循环,然后重新开始。 我的问题是,一旦If语句返回一个“TRUE”值,macros执行结果,但然后停止第一覆盖Do While循环,我想继续。 (基本上,如果If语句中有一个TRUE值,它不会为x + 1生成另一个循环) 提前谢谢你的帮助 'x is row in input tab Dim x As Integer 'z is column in input tab Dim z As Integer x = 9 Do While x < 59 If Sheets("Input Tool (Auction Team)").Cells(x, "C") = "N" And Cells(x, "D") = "Yes" Then 'insert […]

VBA多个循环匹配条件

我很抱歉,如果这是一个重复的,因为我一直在search,并没有find答案。 我是VBA新手,他们如何构build循环。 我正在尝试search和比较。 我需要比较第一行中的值,看它们是否匹配第二行,如果不匹配,则继续前进到下一行。 看到我的代码下面(它运行没有错误,只是没有发现任何值确实存在,因为我可以手动search并find它们) 这个数据集可能非常大,所以我想尽可能高效地编写这个数据集,而不确定什么样的循环结构会更快地执行。 我需要比较列21中的值,看看是否有一个重复的价值观,如果有,那么我需要看看是否相应的行22列的值是相同的,如果他们是那么我想去RowB中的下一行,否则,如果它们不是相同的值,那么我想检查第4行中的两个date值,看看它们是否在两个月内。 如果他们不继续看。 Dim RowsCount As Integer Dim ColCount As Integer RowsCount = Cells(Rows.Count, 1).End(xlUp).Row ColCount = Cells(1, Columns.Count).End(xlToLeft).Column Dim RowA As Integer Dim RowB As Integer Dim GroupA As Variant Dim GroupB As Variant Dim CounterA As Variant Dim CounterB As Variant Dim RevDateA As Date Dim RevDateB As […]

做while循环根据单元格(find)中的可用值在vba中

您好我正在写一个代码在VB检查表中的特定值,如果该值不可用,那么它应该回到另一个工作表采取新的价值,如果find值,我必须做一些操作该表我有下面的代码来find工作表中的值,但如果我通过相同的DO WHILE循环作为条件,它会给编译错误 find代码 Selection.Find(What:=last_received, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate 有人可以帮我写上一个代码,而在循环条件上面findDO,如果条件给出假(即,如果在表中找不到该值),那么我应该使用一些其他的值来找 这是我将要放在循环中的代码 Sheets("Extract -prev").Select Application.CutCopyMode = False ActiveWorkbook.Worksheets("Extract -prev").Sort.SortFields.Clear 'sorting with tickets ActiveWorkbook.Worksheets("Extract -prev").Sort.SortFields.Add Key:=Range( _ "C2:C2147"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Extract -prev").Sort .SetRange Range("A1:AB2147") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply […]

使用Do While循环而不是使用“立即”窗口将值打印到工作表

我了解到“即时窗口”最多只能打印199行数值。 有没有一种简单的方法来将下面的algorithm生成的值打印到工作表单元格中? 具体来说,我不确定do while loop是否是最有效的方法。 我通常处理已经存在于工作表上的数据,我只是指定循环运行,直到数据的最后一行。 由于最外层循环从t=2 to 50运行t=2 to 50 ,我不太确定如何格式化最内层循环才能运行,直到algorithm生成所有可能的值。 正如所写的那样,这个macros已经很长时间了,我没有等它停下来。 该algorithm最多不能产生超过一千行的数据。 For t = 2 To 50 For b = 2 To 20 For r = 1 To 20 For k = 3 To 7 If t * k = b * k Then lambda = r * (k – 1) / […]

做while循环不跳过它应该的文件

我正在构build一个macros来打开文件夹中的每个文件,检查它是否共享,如果是共享,保存并closures它。 它被embeddedLockFolder.xlsm文件夹中的一个文件中,所以我需要它跳过它所在的文件,否则它将在循环中途closures它。 最初有一个If Filename <> 'Lockfolder.xlsm' Then哪个工作正常,但我有嵌套If语句的麻烦If Activeworkbook.MultiUserEditing在那里,所以我认为可能会更容易把前者放在“做而“代码段”。 它不工作。 代码仍然打开我想要它跳过的文件,然后closures它,中止整个事情只有几个文件进入循环。 我究竟做错了什么? Sub Unshare() Dim FileName As String Dim cPwd As String FileName = Dir(CurDir() & "\" & "*.xls") Do While FileName <> "LockFolder.xlsm" Or FileName <> "" Application.DisplayAlerts = False Workbooks.Open (CurDir & "\" & FileName) If ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.ExclusiveAccess ActiveWorkbook.Save ActiveWorkbook.Close Else ActiveWorkbook.Close End […]

使用Excel来达到满足一定标准的单元格的范围

这是一个更好的更新。 我已经包含了一个截图,说明我正在尝试做什么。 我正在尝试编写一个自动执行此操作的函数,而不是必须手动执行。 我有一个包含6,568行数据的Excel工作表。 对于其中一列E,我试图创buildstream量低于5的所有时间的小计。我已经包含一个截图作为例子。 我想要做的是创build一个函数,扫描整个列E和总结时间(列A),当E列的值低于5。 我认为在IF声明中我可以做到这一点,但我不认为这是最好的方法。 也许“SUMIF”,但我不认为这是正确的。 这是更适合VBA的东西吗? 这是我开始的: IF(E2270<5, IF(E2271<5), blah blah blah) 我虽然有点难倒了。 任何帮助表示赞赏。 编辑 这是带有标题的屏幕截图