Tag: recursion

使用GoTo,来自数组的字符组合的Excel VBA中的recursion函数

我想在Excel VBA创build一个recursive函数,而不使用nested循环。 我用GoTo做,因为我认为这是非常快速的For循环等。 PROBLEM:问题是,第一个标签即'a'不执行所有iterations ,所需的组合不会返回所以。 从给定的数组'arr'应该有39 combinations但只有14个返回。 我尝试改变一些代码行的总迭代'iNum'返回39,但不是39组合(从'a'开始的组合总是丢失)。 请帮忙,谢谢。 Function rec_n() Dim a As Integer, b As Integer, c As Integer Dim aSize As Integer, iNum As Integer Dim myStr As String 'Dim arr As Variant Dim arr(5) As String 'arr = Array("a", "b", "c", "d") arr(0) = "a" arr(1) = "b" arr(2) = "c" […]

避免VBA中的单元格更改recursion

用户input后,我需要对单元格进行一些操作。 现在,我正在做这样的事情: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Target.Worksheet.Range("H5")) Is Nothing Then MyMacro End Sub 问题是, MyMacro也在改变单元格,recursion调用Worksheet_Change ,导致堆栈溢出。 我怎样才能避免这一点,仍然能够从我的macros的细胞工作?

recursion文件夹search组合CSV到主

我一直在使用这个 – 但它不是recursion的。 这怎么可以适应一个recursion的文件search合并大约100个.csv文件到一个工作簿? Sub test() Dim myDir As String, fn As String, wb As Workbook Set wb = ActiveWorkbook With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then myDir = .SelectedItems(1) & "\" End With If myDir = "" Then Exit Sub fn = Dir(myDir & "*.csv") Do While fn <> "" With Workbooks.Open(myDir & fn) .Sheets(1).Copy after:=wb.Sheets(wb.Sheets.Count) […]

做了一个recursion程序,将列的位置转换为Excel列(1 = A,27 = AA),在我的输出中获得@

我让这个程序熟悉了recursion以及它正在工作的所有意图和目的。 def alpha_covert(to_print): if to_print is 0: return 'Z' else: return chr(int(to_print) + 64) def order(to_print): if to_print <= 26: return alpha_covert(to_print) else: return (str(order(to_print % 26))) + (str(order(to_print / 26))) 一些示例输出: >>print(order(1)) >>print(order(100)) >>print(order(443)) >>print(order(9001)) >>print(order(9999999999999999)) A VC AQ EHM O@JIHYHMTURB 对于最后的输出为什么有一个@ ? 我认为没有问题,因为int没有被声明,直到我使用alpha_covert ,那么应该只是less than or equal to 26 。 这是一种浮动舍入错误? 一些额外的样本,而我试图自我解决这个问题。 我不知道这是什么意思: […]

Excelrecursion – 在序列中查找最后一个

使用Excel 2010和有一个零件清单,其中一些可以改变其零件号码。 如果零件已被更改,则它将位于一个工作表(A列)及其新值(B列)中。 这个变化还有一个date时间戳。 在我所有的零件号码列表中,我需要 检查部件是否已被更改 按照它通过它的每一个变化,直到我find最后一个。 “ 最后一个 ”可能意味着什么 列B( newVal )中的值不在列A( oldval )OR中 如果它指向自己(更正),在这种情况下,最新的date时间戳是决定性因素。 更正列表是通过添加一行将其redirect到以前(正确的)版本来input的。 一个例子: oldVal A更改为newVal B 2016-04-08 11:39:04.765 oldVal B更改为newVal C 2016-04-08 12:21:39.801 ( 我们发现B – > C的改变是不正确的 ) oldVal C更改为newVal B 2016-04-08 13:44.07.913 我知道一个vLookup不会这样做。 我认为SUMPRODUCT可能会解决第一部分,但我不确定如何做recursion(或者如果可能的话)的时间部分。 任何想法,想法,解决scheme将不胜感激。 编辑 附加信息 – 所需的输出 我想在NewPartNo列中显示的是该零件编号链中的最后一个值。 如果零件编号从A→B→C→D,我想在列A的PartNo的NewPartNo列中看到D. 你有一个1960-1新的25 – 1960年。 问题是25-1960然后有一个新的OBB1960VAL。 recursion错误的vals有多less层? 这就是问题 – […]

阅读大型Excel表格时优化内存

我有一个Excel文件,其中我开发了一种阅读表1中的所有内容的方式,并将其填充到一个列表视图,基本上工作表中的单元格数据AD。 但是数字是12万。 当我运行代码,它读取这些文件,需要时间,但在这个过程中,窗体上的任何操作,如最小化或单击窗体任何地方冻结程序,并导致它崩溃。 我怎样才能提高性能像任何好的程序呢。 这里是我的代码如下。 private void button1_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application ExcelObj = new Microsoft.Office.Interop.Excel.Application(); OpenFileDialog openFileDialog1 = new OpenFileDialog(); // prepare open file dialog to only search for excel files (had // trouble setting this in design view) openFileDialog1.FileName = "*.xlsx"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { // Here is the call to […]

如何以一定的时间间隔在文本文件(python)中recursion地添加空格?

我正在学python 3,而且我还喜欢把自己当作初学者。 这个问题,尽我所能,是我想要添加空格到.txt文件。 这听起来很容易,但它却困扰了我。 所以我有这个巨大的双星的文本文件,它们的坐标叫华盛顿双星目录。 下载产生具有30084行文本的文本文件。 我知道我会一直需要在每行中放置一个10个字符的空格,然后有条件地删除下一个2-4行之后的空格。 例如 05597+2228STT 125 1843 2007 33 2 0 1.3 1.4 7.89 8.89 A0 -017-003 -017-003 +22 1130 055942.46+222815.0 插入的空间将在“8”和“S”之间。 在这种情况下,我还需要删除“T”和“125”之间的空格。 一旦我知道如何recursion地编辑每一行,我可以处理空格条件格式。 我知道这将与function和循环有关。 我也得到尽可能python读取文件。 我试图做到这一点的主要原因是导出到Excel,因为缺乏WDS标识符和发现者代码之间的空白混淆了input。 任何意见将不胜感激。 谢谢。

Excel电子表格崩溃:数千个单元格同时变成“#NUM!”

当我在一个特定的单元格内input一个窄范围之外的数据时,我创build了一个用于分析纽约市stream量定价的大量Excel电子表格(60个选项卡,每个选项卡为1,000 x 68个单元格)。 通过“崩溃”我的意思是说,大量的细胞 – 可能数以万计 – 返回“#NUM!” 同时。 正如你所猜测的那样,电子表格是recursion的,因为有数百(数千?)个数据在不同的单元之间来回传递的情况…在处理旅行select时必须发生(例如,提高道路收费减less了自动但是由此产生的交通stream量的改善吸引了汽车旅行,从而恶化了交通stream量……)。 有没有办法,我可以“减慢”的计算,以查看#NUM! 结果第一次出现? 缺乏这一点,我花了大量的时间无果而终追查公式或algorithm,导致最初#NUM! 结果,然后感染所有其他的,使诊断不可能。 大约4 MB的电子表格可以通过以下链接下载: http : //www.nnyn.org/kheelplan/BTA_1.1.xls 。 导致崩溃值的单元格是“Taxis”工作表中的F444。 其当前(保存的)值是1(1.0)。 提高到4.0甚至更小的值将使电子表格崩溃…从它不能重build。 我应该说我是math家,根本不是程序员。 事实上,我比math家更像一个“数字学者”。 提前致谢。 我对这个网站很陌生,对它印象深刻。

在excel中进行recursion查找

我想在Excel中做一些数据validation,但有一个困难,使vlookup工作recursion。 这是一个小样本的数据 +—————+—————–+ | Duration(sec) | Start time(sec) | +—————+—————–+ | 1.428571429 | 96.57142857 | | 1.888888889 | 95 | | 1.888888889 | 96.22222222 | | 2.428571429 | 95.71428571 | | 2.75 | 96 | | 2.8 | 95.3 | | 2.846153846 | 94.30769231 | | 2.857142857 | 97.42857143 | | 3 | 94.8 | […]

出栈空间的问题 – 我可以重复一个小组而不递交它?

我正在Excel中制作一个有趣的项目。 它完美的工作,除了大约一分钟的运行时间,它错误,因为它是堆栈空间。 我意识到这是因为技术上我在stepEvent函数中使用recursion,看起来像这样: Private Sub stepEvent() ' All the game code start = Timer Do While Timer < start + 0.15 DoEvents Loop stepEvent End Sub 在玩家失败之前, stepEvent任何实例都不会解决,或者堆栈空间和错误消失。 我的问题是,如果有一种方法来解决recursion的潜艇,但以某种方式保留控制,或者如果有一个备用的方法来重复,而不使用recursion。