Tag: 循环

否则情况下运行,即使如此(如果/否则)

我目前正在与Excel的VBA工作,我真的需要一些帮助。 如下所示,我基本上试图检查所有单元格为特定值(2090)&输出“1”,如果2090被发现在那一行,“0”否则。 这个输出将在第25列,并与数字在同一行。 我做了一些testing,我知道我的代码确实输出“1”,当遇到2090和输出在正确的地方等。但是,输出后,“1”,它会立即重叠一个“0” 。 因此,我相信即使在If语句为真的情况下,其他情况也在运行。 在执行结束时,我的整个列只产生一堆“1”,没有别的。 我将不胜感激任何forms的帮助! 谢谢。 Sub New() Dim i As Integer, j As Integer, Needed As Integer Needed = 2090 For i = 1 To 10 For j = 1 To 20 If Cells(i, j).Value = Needed Then Cells(i, 25).Value = "1" Else Cells(i, 25).Value = "0" End If Next j […]

确定两个连续单元格是空白的

下面的While循环意味着迭代一列,直到find两个连续的空白单元格。 只要curCell为空,它将立即退出,忽略lastCell中的值。 在debugging的时候,我已经validation了lastCell有一个值并且不是空的,但是循环仍然存在。 我的和声明有什么问题? While (lastCell <> "") And (curCell <> "") lastCell = curCell ActiveCell.Offset(1, 0).Select curCell = ActiveCell Wend

通过所有工作表循环简单的function

我正在尝试创build一个macros,在工作簿中的每个Worksheet上执行以下操作。 Range("U10").Select FormulaR1C1 = "=R3C2" Range("U10").Select Selection.AutoFill Destination:=Range("U10:U19"), Type:=xlFillDefault Range("U10:U19").Select Selection.Copy Range("V10").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("V10:V19").Select Selection.Copy Range("U10").Select ActiveSheet.Paste Range("V9:V19").Select Selection.ClearContents Range("A16").Select Selection.ClearContents 我试过了: Sub parse() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets 'The above code Next ws End Sub 不幸的是,这似乎只是将这个macros应用到当前活动工作表。 我有一种感觉,这与我没有正确引用范围有关(我是VBA的新手,所以任何解释都能帮助我解决问题!)。 IE浏览器。 应该是像ws.Range …等还是应该做一些完全不同的事情?

通过数组遍历 – 返回错误“试图访问A(:,3); 指数越界,因为大小(A)= “

我是MATLAB的新手,我正在尝试编写一些代码来遍历导入的Excel数组,并分别对数组的每一列进行计算。 我收到错误“试图访问A(:,3);索引超出范围,因为大小(A)= [4,2]”,我不知道为什么,因为我已经试图给输出variablesmatrix尺寸。 这里是代码: filename = 'allsets.xlsx'; x1Range = 'B1:C5'; sheet = 1; A = xlsread(filename,sheet,x1Range); Mu1 = zeros(size(A)); Mu2 = zeros(size(B)); for i = 1:length(A) % class mean Mu1(:,i)=mean(A(:,i))'; end x2Range = 'B6:C9'; B = xlsread(filename,sheet,x2Range); for i = 1:length(B) Mu2(:,i)=mean(B(:,i))'; end 任何build议如何解决这个错误将非常感激。 谢谢!

VBA for循环结束提前

如果我正在迭代k = 1到100,我有时需要重新启动迭代,如果不符合标准。 在这种情况下,我创build一个1到100之间的随机数,但是如果这个数字低于51,我想迭代重新开始。 现在代码返回一个可变数量的值。 有时1,有时90。 任何想法为什么? Public k as long Sub Example() For k = 1 To 100 Call ExampleExtended Next k End Sub Sub ExampleExtended() Dim Val As Integer Val = Int((100 – 1 + 1) * Rnd) If Val < 51 Then k = k – 1 Exit Sub End If Debug.Print […]

VBA循环不返回任何值,加上无法终止

我已经写了一些代码,旨在search列中的单元格,看它们是否以某个string开始,然后根据另一列中的string返回一个值。 我有两个问题,首先循环实际上并没有返回列中的任何值8,9,10或11.第二个循环不停止运行? 这是我的代码 Sub Possible_solution_one() Dim i As Integer Dim j As Integer Dim ws As Worksheet Set ws = ActiveSheet For i = 2 To ws.Cells(ws.Rows.Count, "a").End(xlUp).Row Do While Cells(i, 1).Value <> "" If Cells(i, 2) = "Business://EXTRACTS/" & "*" Then Cells(i, 8) = "OBS(" & Cells(i, 2).Value & ",SHARE,#DI) OR " End If […]

openpyxl遍历column => TypeError的单元格:'generator'对象不是可以下载的

我想遍历列的所有值,以安全他们作为一个字典中的关键。 据我所知,一切都好,但python不同意。 所以我的问题是:“我做错了什么?” >>> wb = xl.load_workbook('/home/x/repos/network/input/y.xlsx') >>> sheet = wb.active >>> for cell in sheet.columns[0]: … print(cell.value) … Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'generator' object is not subscriptable 我必须要失去一些东西,但经过几个小时的努力之后,我必须把它扔进沙袋里,然后在沙发里打电话;) 在此先感谢所有的帮助! ================================================== ================= @Charlie Clark:谢谢你花时间回答。 事情是,我需要第一列作为字典中的键,然后,我需要做的 for cell in sheet.columns[1:]: 所以,虽然它可以解决我的问题,但是在我的代码中,它会在几行后回到我的头上。 我将在我的代码中使用您的build议来提取密钥。 我主要的问题是: 为什么它不工作,我相信我之前使用这个代码片段,这也是如何,当谷歌search,人们正在build议这样做。 ================================================== ======================== >>> for […]

VBA代码需要很长时间才能执行

以下VBA代码需要很长时间才能执行。 我25分钟前跑了48000行,它仍然在运行。 我怎样才能缩短执行时间? Sub delrows() Dim r, RowCount As Long r = 2 ActiveSheet.Columns(1).Select RowCount = UsedRange.Rows.Count userresponse = MsgBox("You have " & RowCount & " rows", vbOKOnly, "Info") Rows(RowCount).Delete Shift:=xlUp ' Trim spaces Columns("A:A").Select Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, searchFormat:=False, _ ReplaceFormat:=False ' Delete surplus columns Range("L:T,V:AA,AE:AG,AR:AR,AU:AU,AZ:AZ").Select Selection.Delete Shift:=xlToLeft ' Delete […]

Excel VBA:无法理解循环

我的代码可以在下面看到。 我已经设置TacticInput和DateInput作为一个范围(它发现过滤后的第一个可见的单元格)。 然后我想要CodeTextBox进入范围TacticInput但只有当它的空。 如果它不是空的,我想偏移2列,然后再试一次,如果这不是空的,我也希望它继续尝试,直到它成功地find一个空单元格,并将其分配给CodeTextBox 。 与DateBox相同:如果DateInput空,则将其input到DateInput ,如果不是,则将其偏移2列,然后重试。 这是我设法得到的代码,但它不工作。 我尝试了很多不同的组合,但我卡住了。 目前它只是replace第一列中的值,它没有find下一个空单元并放在那里。 Dim TacticInput As Range Dim DateInput As Range Dim TrueValue As Boolean Set TacticInput = Sheets("Sheet1").Range([B2], Cells(Rows.Count, "AL")).SpecialCells(xlCellTypeVisible)(1) Set DateInput = Sheets("Sheet1").Range([C2], Cells(Rows.Count, "AL")).SpecialCells(xlCellTypeVisible)(1) TrueValue = False Do Until TrueValue = True If TacticInput = "<>" Then TacticInput.Offset(0, 2) = TacticInput DateInput.Offset(0, 2) = DateInput […]

添加枢轴值 – 进一步的问题

我正尝试使用VBA将VLookups添加到工作表中。 我已经设法让我的代码在这个小组的帮助下工作,但是仍然存在如下所述的错误。 列AA中的第一个VLOOKUP 键入的公式看起来是:= VLOOKUP(B2,'供应商审计报告'!C:AB,26,FALSE) 列BB中的第二个VLOOKUP键入公式:VLOOKUP(U2,Pivot!A1:B1802,2,FALSE)其中单元格A1:B1802是一个数据透视表,定义为pvt(每次透视图的大小将不同macros运行,所以我宁愿引用定义的数据透视表,而不是A1:B1802) 我想要公式被填充到表中的数据的结尾(每次都是不同的单元格)。 我的代码如下。 我已经经历了各种迭代,并且这个迭代成功地将VLOOKUP公式转换成AA,但不是AB。 但是,在列的每个单元格中的公式如下(即,xcell引用不会随着公式循环而改变,因为它是没有“”的文本,所以不会带回值)。 =VLOOKUP(SEUR0310,'Supplier Audit Report'!C:AB,26,FALSE) 哪里SEUR0310甚至不是B2的价值。 我想要公式显示: =VLOOKUP(B2,'Supplier Audit Report'!C:AB,26,FALSE) in cell AA2 =VLOOKUP(B3,'Supplier Audit Report'!C:AB,26,FALSE) in cell AA3 and so on 当它完成AA的第一个循环时,我得到如下的AB Vlookup错误:应用程序定义的错误或对象定义的错误。 运行时错误1004。 有没有人有任何build议如何解决代码,以使其工作。 对于VBA,我还是非常的新颖,所以我们非常感谢您的帮助。 当前代码 Sub Adding_VLOOKUPS() Dim pvt As PivotTable Dim sAP As Worksheet Dim sDB As Worksheet Dim sSAR As Worksheet Dim […]