Tag: 嵌套循环

不能在嵌套for循环中使用特定的variables?

下面的代码给了我一个错误1004.(注意,iElements和iSortOrder()在代码的早期定义很好,而CopyHeader是一个子例程) Dim page As Long page = 0 For i = 0 To iElements ' Every five elements is a new page. Every new page, copy the header and update current page count. If ((i Mod 5) – 1) = 0 Then CopyHeader ((page * 34) + 1) page = page + 1 End If […]

Excel VBA – 一次循环一列

我正在循环Sht1 (B2:B138)每一行,并为该循环中的每个项目设置一个“input”单元Sht2 (A1) ,一次一个。 然后,“输出”单元Sht2 (N7)将被复制回Sht1 (C2:C138) 。 举个例子: Sht2 (A1) = value in Sht1 (B2) ,则Sht1 (C2) = value in Sht2 (N7) 重复 Sht2 (A1) = value in Sht1 (B3) ,则Sht1 (C3) = value in Sht2 (N7) 一遍又一遍,直到它到达列表的底部。 最终,我可能不得不在Sht1 ColB扩展列表,所以我一直试图让它评估dynamic需要的迭代次数。 我在下面的代码给了我所有正确的“输出”,但他们并没有在Sht2 ColC正确的单元格。 请看下面。 我研究并发现这个Q / A是有用的,并用它来影响代码。 我感谢你的帮助提前。 我的工作簿 ,以防你需要看到它。 Sub fnDescCalc() 'Define the objects […]

结合数据使用R(或者也许Excel) – 循环匹配刺激

我有两组数据,分别对应于我想要合并分析的不同实验任务。 问题是我需要search和匹配特定的刺激和特定参与者的某些行。 我想用一个脚本来节省一些麻烦。 这可能很简单,但我从来没有做过。 这是我的问题更具体:在第一个数据集中,每行对应于两个替代强迫select任务,其中两个刺激一次呈现,参与者select一个。 在第二个数据集中,每行对应于单个项目任务,其中参与者被询问他们是否曾经见过刺激。 第二个任务中的刺激与第一个任务中对的刺激相匹配(两倍多)。 我希望能够匹配并在第一个数据集中添加两列 – 一个表示左侧项目是否稍后被识别,另一个是右侧刺激。 我认为这可以用嵌套循环完成,但我不知道是否有一个优雅的方式来做到这一点,也许是一个包。

如何提高Excel VBA For循环中嵌套If循环的性能?

这是我的第一篇文章,所以如果我需要做任何改变,请告诉我。 我发现了一些优化循环的方法,但我似乎无法将其中的任何一个有效地应用于我的代码。 我想要做的是循环通过单个列中的大约170个单元格,并根据单元格值是否为0隐藏或显示整个行。 每次激活某些表单时,我都希望代码能够运行。 现在这段代码需要大约4秒的时间才能运行。 它似乎应该比这更快! 这就是为什么我在这里寻求帮助。 这里是我正在使用的代码(FormatSheet返回一个BOOLEAN,其中True表示可以在此表单上执行此代码,False表示跳过在此表单上执行此代码: Private Sub mobjWb_SheetActivate(ByVal Sh As Object) Dim r As Long Dim z As Long Dim varray As Variant Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False If Not FormatSheet(Sh) Then Exit Sub End If Set varray = Range("$F$1", Cells(Rows.count, "F").End(x1up)).Value […]

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 […]

帮助嵌套如果/循环VBA

我正在循环一个Excel电子表格,并将所有的单元格合并为一个string,我做了。 现在我需要使用XML标签来格式化string,然后将其发送到上传文件中,并且正确地将标记工作到循环中有些困难。 看起来好像已经在工作了,但是其中一些标签并不在正确的位置。 任何帮助将非常感激。 码: Public file As String Sub locate_file() Dim sheet1_95 As String Dim theRange As Range Dim strVal As String Dim wb As Workbook Dim counterDT As Integer Dim counterSVR As Integer Dim counterMB As Integer Dim outputStr As String 'prompt user for location of other excel sheet' file = Application.GetOpenFilename("Excel Files […]

做直到循环不工作。 有任何想法吗?

我正在尝试创build一个移动单元格范围的程序,但是我的一个Do循环不起作用。 特别是列爬行的元素。 当程序运行时,只有A7:A9而不是A7:J9。 如果A10为空,则B7:B9将填充,爬行对于第1行到第L1行的移动起作用,并且在红线没有值的情况下工作。 我的错误是什么? Sub Columntest() Dim i As Integer, j As Integer, k As Integer i = 1 j = 2 k = 7 Do Until i = 11 Range("L1").Formula = Cells(1, i) If Cells(10, i).Value = "Low" Then Do Until j = 6 Cells(j + 15, 1).Formula = Cells(j, i) j = […]

VBA嵌套循环提前退出

我有一个VBA脚本,应该将数据从一个表复制到另一个。 它通过三个嵌套for循环。 在debugging这些代码的过程中,似乎完美地工作,但是当vba脚本运行时,它们似乎停止得太早。 否则,VBA脚本的作品。 我一直盯着这几个小时,不能在我的生活中看到什么会导致循环提前停止。 我希望解决scheme是我错过的一些简单的东西,但是我真的很失落,而不是自从我开始这个以来的第一次。 该表的组织如下: Sheet1包含要复制的数据。 每行包含一个单独的响应,其中有55个testing数据 该表包含九个数据块,名为第1-9集。 每集包含一个整数表示开始,结束和间隔时间的列。 在testing数据中,除了开始/结束时间外,每个情节是相同的。 EndTime的最大值是36 testing数据仅在前四个Episode模块上,所以Episode4包含每一行的EndTime = 36 Sheet2,其中数据要去 – 第一列包含每36个行复制的RespondentID – 第二个列包含数字1-36,因此代表该受访者的时间-11列之后的列包含从Sheet1复制的区域应答者/时间被放置。 testing数据中的这些36×11区域被命名为“Response1-55” vba脚本的逻辑如下: 计数器: – n个受访者数量的计数器 – r计数器数量 – 我计数器中被复制到的响应行数。 – >对于每个响应(从n = 1到受访者开始) – >select第一集(从r = 1到9开始) —>为每集 —>读取开始,结束和间隔时间 —>从i =开始到i =从第r集的第n行复制相关的单元格 —>将这些单元格复制到sheet2上当前响应的第i行 —>当你达到当前情节的结束时间,转到下一个(下一个r) – >如果你刚刚完成的情节有36作为EndTime然后去下一个回应,或继续,直到你用完情节。 – >下一个响应 在debugging代码似乎做到这一点。 但是,当我在testing表上运行vba脚本时,它仅适用于情节1和2.情节3和4中的数据不会被复制。 没有任何内容被复制,而且复制的数据在各方面都是正确的。 在任何时候都没有错误信息。 如果有人能够提出为什么会发生这种事情,我会给他们build一个真正的教堂。 答案也可以在这里添加: […]

dynamic添加嵌套循环

我有一个“X”数量的variables(可能范围在3到20个选项之间),这些variables将被组合来计算所有可能的组合以符合标准。 对于每个额外的variables引入一个额外的循环,但是我不知道是否有可能创build循环dynamic(在Excel VBA中,代码不必非常快)。 为了演示:我有var。 A与h = 2,var。 B与h = 3.我想知道所有等于10的组合或2个variables的最佳组合。 在这种情况下:选项1 = 5 * A = 10,3 * B = 9,2 * A和2 * B = 10,3 * A和1 * B = 9。 代码如下所示: For A = 0 to 5 h = 0 'Reset previous h if solution is found For B = 0 to […]