Tag: while loop

Excel VBA做while循环不能识别do while语句

我正在尝试编写一个macros来检查一个名为原始数据的工作表中是否有匹配的名称,如果名称匹配,则将该行中的数据复制到名为search的工作表中。 我正在尝试使用do while while循环,类似于我以前成功使用的循环。 但是,当我尝试运行它,它给了我错误“循环没有做”,尽pipe事实上,一切似乎是在正确的地方。 我的代码如下: Sub NameSearch() Sheets("Raw Data").Unprotect ("29745") Application.ScreenUpdating = False Dim x As Long 'set starting point at row 2 x = 2 Dim sourceSheet As Worksheet: Set sourceSheet = ThisWorkbook.Worksheets("Raw Data") Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("Name Search") Do While sourceSheet.range("A" & x).Value <> "" If sourceSheet.range("O" & […]

使用VBA代码将工作表合并到基于特定条件的工作表中

在一个工作簿中,有几百个工作表。 我试图将某些范围(A2:D6)从某些工作表(名称以“_A”或“_B”结尾)合并到一个工作表(“合并”)中。 数据结构在目标表单中是相同的: 例如,目标工作表名称全部以“_A”或“_B”结尾 Code1_A Code1_B Code2_A Code2_B Code3_A Code3_B 。 。 。 我想要像这样将它们结合为VALUE并保持格式 : 目前,我有以下代码: Sub Merge () Dim Sheet As Worksheet For Each Sheet In ActiveWorkbook.Sheets If Sheet.Name Like "*" & strSearch & "_A" Or _ Sheet.Name Like "*" & strSearch & "_B" Then Sheets(Sheet.Name).Range("A2:D6").Copy End If Next With Worksheets("Combined").Range("A2") .PasteSpecial Paste:=xlPasteValues .PasteSpecial […]

Excel VBAselect活动单元格循环下面的单元格

我在Excel中是VBA的新手,想要使用Do While循环做一些格式化。 我想要做的是比较column1(这是名称)中的每个单元格中的值与其正下方的单元格。 如果名称匹配,我将自动进行一些计算。 如果它们不匹配,我希望循环继续向下,直到find下一个匹配。 我想循环比较A2到A3然后A3到A4等。 为此设置variables的最佳方法是什么? 我可以很好地计算macros,但由于某种原因,这个循环的基本组成部分正在让我的头受伤。 干杯

如何设置一个范围等于倒数第二个结果?

我有一个92000行的数据列表。 它包含ICD10医疗诊断代码和代码分类标题。 代码分类标题总是三个字符(例如“A00”,“A01”,“B00”,“B01”)。 但是,三个字符代码只有紧跟在后面跟着相同的代码(例如“A000”,“A010”,“B000”,“B010”)的类别标题。 如果三个字符代码没有跟随附加版本,那么这三个字符代码本身就是代码。 最终目标是使用驻留在用户窗体中的列表框提供数据validation列表。 列表框只能包含代码,不包括所有的类别标题。 我的第一步是修改一些免费的代码来循环92000行,并build立一个范围,捕捉所有的类别标题排除。 在检测到“A00”+“0”实例时,我已经尽可能地停止循环。 我怎么得到的结果只突出“A00”的价值,没有别的? Sub HighlightFindValues() 'PURPOSE: Highlight all cells containing a specified values 'SOURCE: www.TheSpreadsheetGuru.com Dim fnd As String, FirstFound As String Dim FoundCell As Range, rng As Range Dim myRange As Range, LastCell As Range 'What value do you want to find (must be in string form)? […]

错误从多个Excel工作簿拉取关键信息

我正在尝试在工作簿中编写一个macros,其目的是显示一组excel文件中的关键信息。 第一列包含将在代码中使用的文件的名称。 我迄今为止编写的代码应循环显示汇总表中11个文件名的列表,并从每个文件中的单元格E21中调用信息,并将其放在汇总表中的单元格Hx中。 我已经没有运气得到它的工作到目前为止,我的第一个错误得到是“无效的限定符”的行说,“MySheet”。 我知道这里还有很多其他的错误,因为我从来没有试图写出一个从其他封闭的工作簿中拉出来的子。 我的代码如下: Option Explicit Sub OEEsummmary() Dim Gcell As Range Dim Txt$, MyPath$, MyWB$, MySheet$ Dim myValue As Integer Dim x As Long Dim v As Variant, r As Range, rWhere As Range MyPath = "L:\Manufacturing Engineering\Samuel Hatcher\" x = 2 MySheet = ActiveSheet.Name Application.ScreenUpdating = False Do While MySheet.Range("A" & […]

循环不select单元格

我想循环没有select单元格。 范围B:B将包含我想编号的值的列表: 10等。我对如何完成这个任务有一个想法,但是它还不能工作: Dim i as integer i = 1 Do While i < 200 If Range("Bi") <> "" Then Range("Ai")= i*10 end if i = i + 1 Loop End sub 有没有人知道一个方法来完成这样的事情? 而这样做还是不会有意义呢? Dim i as integer Dim a as String Dim b as String Dim c as integer i = 1 Do While […]

无限while循环在VBA中

任何人都可以看到我的while循环下面怎么了? 基本上我想请求一个用户input“m”或“w”,但是,当我运行它似乎进入无限循环,尽pipe用户input“m”或“w”。 While period <> "m" Or period <> "w" period = InputBox(Prompt:="Please enter the period (m/w): ", Title:="Period") Wend

VBA查询循环scripting.dictionary

我有这个: Set dict = CreateObject("Scripting.Dictionary") rn = 2 Do While ThisWorkbook.Sheets("1").Range("B" & rn).Value <> "" If (ThisWorkbook.Sheets("1").Range("B" & rn).Value <> "") Then dict("&&1") = dict & ThisWorkbook.Sheets("1").Range("B" & rn).Value & ", " rn = rn + 1 Loop 但是这不起作用,我得到了VBA中的错误450。 它需要做的是:B列中的每个值(如果不是空的)必须被添加到由逗号分隔的字典中。 在最后一行之后,可能不会设置逗号。 我认为我是正确的,但也有缺失的东西。

VBA每次将数据放入不同的单元格时,请执行此操作

我最近被给了一个Do While Loop来吐出一些数字,你可以在另外一个问题中看到我问,现在我的问题是我想把数据放在我从中获取数据的单元格旁边,所以我知道我从中获取数据的行的行号,但是因为有3个不同的可能的答案可能出来。 我需要在每个单元格中放入一个值,例如:A3,A4,A5 昏暗的SNs作为string SNs = "Q" & xout Const SNLength As Integer = 5 Dim SerialNumber As String Dim index As Integer If Left(SNs, 1) = "Q" Then SNs = Mid(SNs, 2) index = 1 Do While index < Len(SNs) SerialNumber = Mid(SNs, index, SNLength) 'Code from user Worksheets("Calendar").Range("H" & Rng.Row).Activate ActiveCell.Offset(0, 0).Value […]

while循环挂在VBA中

我有一小段代码,标签重复,并删除工作表中的行。 标识重复项的部分只是在J列中的数据右侧添加了“重复”一词,而且这部分似乎工作正常。 其他部分看起来也能正常工作,但一旦完成,它就会挂起,我必须强行closures它。 以下是删除部分的代码: While Not IsEmpty(Range("J2:J" & InvLast)) For InvList = 2 To InvLast If Range("J" & InvList).Value = "Duplicate" Then Range("J" & InvList).EntireRow.Delete End If Next InvList Wend 在我正在testing的testing文件中,InvLast只有28行,但是我需要成千上万的行数,而不需要花费一天的时间。 提前致谢!