Tag: 无限循环

VBA无限循环

有没有一种构造可以保护VBA函数在进入无限循环时不会使Excel崩溃? 这不是什么大不了的事,只是在运行之前忘了保存最新的更改而不方便。 在更一般的说明中,当然在这种情况下,保持重启button不能超越MS的function。 这里发生的是屏幕变白,唯一的出路似乎是打开任务pipe理器并closures应用程序。

在Excel VBA中创build毫秒循环

由于我刚刚发现Excelmacros,我想尝试模拟移动的对象。 我想在我的项目的每个“框架”上运行一些循环代码。 我可以用Excel代码在Excel VBA中进行无限循环: Do While True: 'code Loop 但是,这使Excel崩溃。 有没有办法做一个无限循环运行每十毫秒左右,如下所示: Dim timer as Timer If timer = 10 Then 'code timer = 0 End If 编辑:你的答案是非常好的,但不完全是我在找什么。 我希望能够同时运行其他代码; 有点像Javascript的 setInterval(function(){}, 200); 可以同时运行多个function。

互相链接三个单元格 – >无限循环?

我用两种方式连接多个单元格,这意味着如果我改变一个单元格,另一个单元格将会更新,反之亦然。 这个代码完美适用于两个单元格 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$4" Then 'Application.EnableEvents = False Sht_input.Range("E4").Value = Sht_input.Range("B4").Value 'Application.EnableEvents = True End If If Target.Address = "$E$4" Then 'Application.EnableEvents = False Sht_input.Range("b4").Value = Sht_input.Range("e4").Value 'Application.EnableEvents = True End If End Sub 现在,当我试图链接三个单元格时,代码进入了不定式循环 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$4" Then 'Application.EnableEvents […]

VBA – 用户窗体与无限计算循环中的多个文本框

我有一个用户窗体与5个文本框,每次更新我重新计算其他。 但是, 如何避免一个“无限循环”,因为第一个会重新计算第二个,重新计算第一个等… 这里是我的UserForm代码的一部分,只有TextBox_Change(s): Private Sub TxtNewVal_Change() If InStr(1, Me.TxtNewVal.Value, ",") Then Me.TxtNewVal.Value = Val(Replace(Me.TxtNewVal.Value, ",", ".")) 'recalculate values If Right(Me.TxtNewVal.Value, 1) <> "." Then Me.TxtValEUR.Value = Val(Me.TxtNewVal.Value) * Val(Me.TxtTxEUR.Value) Me.TxtValUSD.Value = Val(Me.TxtNewVal.Value) * Val(Me.TxtTxUSD.Value) End If End Sub Private Sub TxtTxEUR_Change() If InStr(1, Me.TxtTxEUR.Value, ",") Then Me.TxtTxEUR.Value = Val(Replace(Me.TxtTxEUR.Value, ",", ".")) If Val(Me.TxtTxEUR.Value) = […]

'对于下一个'循环重置计数器在达到'ubound'之前导致无限循环…可能的名称/参考冲突?

我正在开发一个数千行的程序,收集/生成一堆数据文件,所有格式都不相同,然后收集(制表)一部分数据并进行一些分析。 该计划几星期前工作正常。 现在,尽pipe没有触及它,但是连续两次的testing运行和两个逐步debugging会话已经无限地降落到了i = lbound(…)到ubound(…)…. next i循环中。 相关代码转载如下。 显示的函数只是简单地通过二维数组(通过将范围赋值给一个变体创build)循环到类似于一维数组的string中。 导致错误的范围是238×33。 然而,“行”索引“我”达到44,然后重置为0,而不是增加到45及以上。 而且,当发生这种情况时,被反对的string从“* example *”跳转到“** example **”,每当“i”计数器重置为0时,星号的数量逐渐增加。 我最好的猜测是有一些名称/参考冲突。 但是,为什么现在才出现,并且说出来,似乎有点超出我的意思。 function定义: Function arrayFirstLike(ByRef dataArr As Variant, ByVal fieldArr As Variant, _ Optional ByVal byRows As Boolean = True, Optional ByVal exactSearch As Boolean = False) As Variant 呼叫线路: Set infowb = addSaveTemplate(rootPath & templatesPath & "\yFcstIndexInfo", rootPath […]

VBA:防止在更改值时触发_Click事件

几个月来我一直在想这个问题,经过这么多的研究,这个问题还没有解决。 我正在使用Excelcheckbox,并试图使系统万无一失,而“如果A和B不能一起出现,如果A被点击,并且你点击B,那么macros就不会为你点击A”。 然而,我遇到的问题是,这开始(如下面的代码所示)一个无限循环, 第一个Sub: Private Sub CheckBoxD11_Click() If CheckBoxD12.Value = True Then CheckBoxD12.Value = False Worksheets("Dynamic_Parking_Sheet").Range("D9").Interior.ColorIndex = 20 CheckBoxD11.Value = True Worksheets("Dynamic_Parking_Sheet").Range("B8:E8").Interior.ColorIndex = 2 End If TextBox1_Change TextBox2_Change If CheckBoxD11.Value = True Then Worksheets("Dynamic_Parking_Sheet").Range("B9:E9").Interior.Color = RGB(221, 221, 221) Worksheets("Dynamic_Parking_Sheet").Range("D8").Interior.ColorIndex = 4 Else Worksheets("Dynamic_Parking_Sheet").Range("B9:E9").Interior.ColorIndex = 20 Worksheets("Dynamic_Parking_Sheet").Range("D8").Interior.ColorIndex = 2 End If End Sub ..和第二个子: Private Sub […]

Excel无限循环问题

这个程序的目的是从单元格中删除字母。 由于某些原因,当replace函数行执行时,它会陷入无限循环。 如果单元格包含456po83,一旦variables增加,直到它们都等于p,单元格中的字母应该被replace为空,而o现在是string中的第四个字符,并且variables应该保持递增的权利? 我在这里错过了什么? Option Explicit Sub DeleteB() Dim stringLength As Integer Static str As String Dim A As Integer Dim num As Integer Dim indvChar As String Dim B As Integer Dim charArray(0 To 25) As String charArray(0) = "a" charArray(1) = "b" charArray(2) = "c" charArray(3) = "d" charArray(4) = "e" charArray(5) = […]

Excel自定义函数本身无限循环,“End Function”的工作方式如“Next”或“Loop”

我有两个版本的Excel工作簿。 他们基本上是一样的结构。 出于某种原因,我需要从版本A复制一些单元格到版本B,所以我编写了一个名为GetVal()的自定义函数,代码如下: Function GetVal(cur As Range) Dim CurSheet As String, RowN As Integer, ColN As Integer RowN = cur.Row ColN = cur.Column CurSheet = cur.Parent.Name GetVal = Workbooks("BIG Inventory Data – 2015 P10W1.xlsx").Worksheets(CurSheet).Cells(RowN, ColN).Value End Function 然后我在A1单元格中input“= GetVal(A1)”,另一个工作簿的A1数据就会自动显示出来。 这个自定义函数在一开始就工作得很好。 在我使用这个函数来填充所有我需要的数据之后,我写了一个试图将所有getval()公式转换成纯数值的子函数。 这是简化的testing代码: 'First I Set the test Range to this GetVal function Sheets("vba").Range("A1").Formula = "=GetVal(Partner_HLJ!D3)" […]

Excel VBA:寻找避免无限循环的build议

Imgur相册与工作表的屏幕: http : //imgur.com/a/6rFWF 长话短说,我正在写一个Excel VBA实用程序,它将为安全人员分配两种types的安全转移(称为coverage和周末职责)。 基本上,我有一个工作表,其中包括所有工作人员及其各种可用性信息(imgur专辑中的顶部图像)以及包含所有覆盖date(imgur专辑中的底部图像)的工作表。 请注意,我没有周末工作date的图像,因为它看起来与覆盖date类似(但周五和周六class次)。 该工具基本上分配一个随机的工作人员到每个date,检查,以确保它没有违反任何可用性要求。 不幸的是,我意识到我正在创造一个发生无限循环的大机会。 在我自己的testing中,15-16岁左右只有1次尝试,最后没有进入无限循环。 所以我正在寻求你的帮助来解释这个,所以这个工具不会自食其果。 这是有关程序的“伪代码”。 'Loop for Column A in the Coverage Slips sheet (image 2 in imgur album) Do Until (CoverageRowNumber = LastCoverageSlipRow + 1) Get a Random Staff Member by RNG If staff member still needs more shifts (see Requirements columns) Then If staff member […]

无限…下一个循环:我该如何解决?

我试图删除单元格值不等于数组Ar()中的一个值的所有行。 当我把逻辑运算符NOT循环由于某种原因变得无限(excel冻结)。 在对面它完美地工作,万一如果我想要删除包含数组中的值的行。 问题在网上: If Not .Cells(i, 10).Value = Ar(j) Then 我的代码: Sub Tims() Dim LastRow As Long, LR As Long Dim i As Long, j As Long Dim t As Integer Dim Ar() As String Worksheets("Start").Activate t = Count("a", Range("A3:A14")) LR = Range("I3:I10").End(xlDown).Row Worksheets("Master").Activate Sheets("Master").Range("A100:A" & 100 + LR – 3).Value = Sheets("start").Range("I3:I" & […]