Tag: for loop

VBA For循环与If循环

我的VBA代码有问题。 我尝试比较2列,A列和B列。 如果一些数据匹配,比如我们说A2包含B3中的文本,那么我需要比较单元格C2和列D.我不明白为什么,但是我得到错误“End If without block If”。 非常感谢你帮助你们。 这是我的代码: Sub Compare() For i = 1 To 100 For j = 1 To 50 If InStr(1, ActiveSheet.Cells(i, 1).Value, ActiveSheet.Cells(j, 2).Value, vbTextCompare) <> 0 _ Then For k = 1 To 20 If InStr(1, ActiveSheet.Cells(i, 3).Value, ActiveSheet.Cells(k, 4).Value, vbTextCompare) <> 0 Then MsgBox i End If Next […]

用For循环清除行的内容

我有代码,devise循环通过每行中的单元格,并删除它们,除了A和O列。 当我运行这个代码时,它只会删除第二列。 我知道“行(Target.Row).ClearContents”行,但这不符合我的目的,因为我需要特定的列保持不变。 Dim i As Integer For i = 2 To i = 30 If i = 15 Then 'update i but do nothing i = i + 1 Else 'update i and clear contents of cell .Cells(Target.Row, i).Clear i = i + 1 End If Next

IF-THEN在VBA中带有string

我想通过读取string的值来检查两个单元格的值是否相等。 使用for循环来查找IF-THEN语句的匹配。 当通过程序时,它显示的值是相同的一点,但IF – THEN比较只是继续运行我不明白为什么它不会停止时,他们是平等的。 Dim ws As Worksheet Dim lcol As Long Dim Val As String Dim Check As String 'Read in value for audit to continue Val = ContTextBox.Value 'Make Master Sheet Active Worksheets("Master").Activate Set ws = ThisWorkbook.Sheets("Master") 'Finds next empty column With ws lcol = .Cells(11, .Columns.Count).End(xlToLeft).Column + 1 End With 'i […]

'For'循环与比较两列

我有一些类似于下面的代码: set SelectionRNG = Range("A1:B10") for each xrow in SelectionRNG.rows if xrow.value(1,1) = xrow.value(1,2) do something 我需要做的就是比较存储在xrow的两个值。 xrow.value(1,1) = xrow.value(1,2) 不起作用。 我如何参考每个值?

我应该如何嵌套我的“For Next”语句?

我有一些“For Next”语句,但是我不能让它们以我想要的顺序运行。 基本上四个单元格被填充,八行被添加到行号索引(从上一个产品开始的地方开始),然后再填充四个单元格: 然后我们跳1192个单元格到下一个机器,然后再次开始这个过程: 1. Machine 1 Component 0 Attribute 1 2. Machine 1 Component 0 Attribute 2 … 5. Machine 1 Component 1 Attribute 1 6. Machine 1 Component 1 Attribute 2 … 9. Machine 2 Component 0 Attribute 1 10. Machine 2 Component 0 Attribute 2 … 13. Machine 2 Component 1 Attribute […]

程序没有响应-excel vba for循环

如果两张纸上的两个string匹配,我试图每次都按月计算总和 现在我没有看到任何地方在无限循环中,但是这个程序在一段时间后还没有响应,我最终必须closuresexcel。 任务pipe理器,因为即使Break指令不起作用。 这是一个相当简单的程序,但我不知道如何使它比这个更短请指教。 Option Explicit Sub SumByMon() Application.ScreenUpdating = False Dim wk As Worksheet, wt As Worksheet Dim Astr As String, Bstr As String Dim i, j, FinalRow, FinalRowG As Long Dim sm As Double, Jsum As Double, Fsum As Double, Msum As Double, Asum As Double, Masum As Double, Jusum As Double, Julsum […]

如何在openpyxl for循环中读取excel文件?

这对我来说似乎很棘手。 比方说,我已经嵌套在一个目录树中,有一些非空列的excel文件。 我想用openpyxl得到F列中所有值的总和: file1.xlsx ABCDEF 5 7 11 17 20 29 34 我认为这将是如下,但它是错误的: import os from openpyxl import load_workbook directoryPath=r'C:\Users\MyName\Desktop\MyFolder' #The main folder os.chdir(directoryPath) folder_list=os.listdir(directoryPath) for folders, sub_folders, file in os.walk(directoryPath): #Traversing the sub folders for name in file: if name.endswith(".xlsx"): filename = os.path.join(folders, name) wb=load_workbook(filename, data_only=True) ws=wb.active cell_range = ws['F1':'F7'] #Selecting the slice of […]

在For循环的每次迭代之后清除一个stringvariables

码: Dim PrefixDict, k, j Dim renamePrefix As String Set PrefixDict = CreateObject("Scripting.Dictionary") For k = 1 To fileList.Count renamePrefix = renamePrefix + fileList.Item(k).renamePrefix + IIf(k < fileList.Count, ", ", " – ") PrefixDict(fileList(k).FilePattern) = renamePrefix Next k For Each j In PrefixDict Debug.Print j, PrefixDict(j) Next 输出(即时窗口): Sat_Net_Out_PORTME*.xlsx r10, r20, r30, PRINTIMAGE*.txt r10, r20, […]

EXCEL VBA – 循环遍历一行中的单元格,如果不为空,则将单元格值复制到另一行,直到下一行不为空

我正在考虑编写一些代码来复制下一行的数据,直到下一行不是空的。 假设第1行中的所有内容都是标题。 数据如下所示: A2 ClientA B2 Product1 C2 Price D2 Quantity E2 Cost A3 B3 C3 Price D3 Quantity E3 Cost A4 B4 C4 Price D4 Quantity E4 Cost A5 ClientB B5 Product2 C5 Price D5 Quantity E5 Cost A6 B6 C6 Price D6 Quantity E6 Cost A7 ClientC B7 Product3 C7 Price D7 Quantity […]

使用for / each循环,但跳转活动单元格VBA

所以我试图写一个For Each循环来查看整行。 如果它发现“专业”一词复制到下三个单元格。 它是这样做的一部分,但是当它循环时,当然下一个单元格中有“专业”,它只是复制它。 我需要弄清楚怎么说,如果你find“专业”并复制它,跳过4个单元格,并重新开始search…..尝试偏移活动单元格,但没有工作。 有任何想法吗? 谢谢! Sub CopySpecialtyOver() Dim rngRow As Range Dim Cell As Range Set rngRow = Range("A8:BA8") For Each Cell In rngRow If InStr(1, Cell.Value, "Specialty") Then Cell.Offset(0, 1).Value = Cell.Value Cell.Offset(0, 2).Value = Cell.Value Cell.Offset(0, 3).Value = Cell.Value End If Next Cell End Sub