Tag: for循环

创build如果下一个循环与多个variables(工作代码)

我有一张表,我用它来dynamic调整图表。 为此,我使用下面的代码,按照预期工作,但是由于我是VBA新手,所以在创build循环时遇到困难,因此我不必列出每个系列/类别。 总共有8个系列和17个类别。 – 系列filter(真/假)列在“ B27:B34 ”中, – 类别filter在“ C25:S25 ”中列出, 所有的工作表(3)。 有人可以帮我弄这个吗 ? 我的代码(缩写): Sub UpdateChart() Dim varSeries1 As String Dim varSeries2 As String Dim varSeries3 As String ' … Dim varCategory1 As String Dim varCategory2 As String Dim varCategory3 As String ' … varSeries1 = Worksheets(3).Cells(27, 1).Value varSeries2 = Worksheets(3).Cells(28, 1).Value varSeries3 = […]

我需要运行一个循环,将取出单元格的值,并将其存储在另一个,如果有什么,然后检查下一行

我有代码到目前为止我已经在下面张贴,但正如你可以看到它是非常不足的方法来做到这一点,并没有运行一个循环,不会帮助我,如果我结束不止A22以下的项目。 这里的代码是当我按下一个button时,它将通过工作簿中的每一张表单读取,如果单元格A5有“项目#:”,那么它会看到单元格A19是否有任何东西,如果它将采取什么单元格A19 ,C19,E19,F19和G19,并把它放在名为“数据表”的工作表上。 当前的代码有它,所以它通过A22处理,但我希望它是一个循环自动化,以便它检查单元格A5“项目#:”,如果它发现,然后它检查如果A19是空白的,如果它结束了循环。 如果它有任何types的文本,那么我希望它从列A,C,E,F和G的值,把它放在“数据表”。 然后它将循环到下一个(第20行),并重复它为前一个做的过程。 目前我的代码正确的工作,以获得数据的正确位置,但我的行19-22的IF-ELSE是效率低下,不知道如何编码循环。 Sub NonStoresItems() With Worksheets("Data Sheet") ' Clear previous data on the All projects page .Rows("141:" & Rows.Count).ClearContents For Each ws In ThisWorkbook.Worksheets If ws.Range("A5") = "Project # :" Then If Range("A19") = "" Then Else: x = .Range("A" & Rows.Count).End(xlUp).Offset(1).row .Cells(x, "A").Value = ws.Name 'classifying number .Cells(x, "B").Formula […]

清除范围内的所有隐藏的单元格

非常简单的问题。 我不断收到错误消息和Excel崩溃。 我的代码有什么问题: Sub Clear() Dim c As Range For Each c In ActiveSheet.Range("HeatPump1").Cells If c.EntireRow.Hidden = True Then c.Clear End If Next c End Sub

对于循环忽略ELSE存在时的真IF条件

在循环体中存在一个ELSE条件时,看起来我有一个让我的For循环确认我有一个True IF条件的问题。 这是我写的: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'TEST FIND/SEARCH FEATURES Dim String2Find As String = txtCPUSerial.Text Dim ColumnNumber As Integer = 1 'Access the worksheet Dim xlApp As Excel.Application xlApp = CreateObject("Excel.Application") xlApp = GetObject(, "Excel.Application") Dim xlWB As Excel.Workbook = xlApp.Workbooks.Open("C:\Users\Machine\Desktop\DocDirectory\MyDoc.xls") Dim xWS As Excel.Worksheet xWS = xlWB.Worksheets("Sheet1") […]

根据其他工作表中的值隐藏variablesRangeName

目前我正在使用一个数组来缩小工作代码。 我会很快解释代码; 如果某个零件需要在数据表中(该工作表被称为“高压研磨辊”),则用户可以通过在表格(“Invulformulier”)上input值“a”来定义该零件。 如果单元格值为“a”,现在有几个部分可以在数据表上。 如果我们有“partA”,“partB”和“partC”,单元格的RangeName将是表单上的零件名称(“Invulformulier”)。 板料上的范围的范围名称(“高压研磨辊”)将是部件的名称+“1”。 例如“partA1”。 这个范围必须隐藏,这取决于用户是否为“partA”放入“a”。 这是我使用和工作的代码,但特定于单元名称: Sub Hidecellv1 () If Range("partA").Value = "a" Then Sheets("High Pressure Grinding Rolls").Range("partA1").EntireRow.Hidden = False ElseIf Range("partA").Value = "" Then Sheets("High Pressure Grinding Rolls").Range("partA1").EntireRow.Hidden = True End If End Sub 这段代码非常具体,我想创build一个数组。 这是我迄今为止: Sub Hidecellwitharray () Dim rngName As Range Dim cell As Range Application.ScreenUpdating = False For […]

如果条件满足,改变循环方向

我试图做一个循环,将逐步如果ZuluLY> ZuluTY,如果祖鲁<ZuluTY逆向步进 当我尝试这个时,我不断收到“else if if”编译错误。 循环工作正常,没有IF语句条件,但是当我添加IF语句,我得到错误。 这是一个代码片段,显示了我所尝试过的 If ZuluLY > ZuluTY Then For yr = LBound(Year_Arr) To UBound(Year_Arr) ElseIf ZuluLY < ZuluTY Then For yr = UBound(Year_Arr) To LBound(Year_Arr) Step -1 End If '….. code

在一个循环内部,如何在多列的平均值(Visual Basic)时指示“所有行”

我有一个循环,其中我采取数列的数字相同的行数。 循环的重点是捕捉这些手段在一个新的载体。 所以对于每个循环,我需要指出“所有行”。 在matlab中,这将是容易的,只是使用“:”但我无法弄清楚在VB中是什么类比。 请帮忙! 谢谢。 (请告诉我,我在下面的代码中,我已经ALLROWS )。 我到目前为止的尝试: For i = 1 To CA mrCA11(i) = Application.WorksheetFunction.Average(revCA11(**ALLROWS**,i)) Next i 在matlab中,这将是: For i = 1:CA mrCA11(i) = mean(revCA11(:,i)); Next i 编辑:我也试过这个技巧无济于事: For j = 1 To CA For i = 1 To s11 temp11(i) = revCA11(i, j) Next i mrCA11(j) = Application.WorksheetFunction.Average(temp11) Next j 我收到错误消息:“无法获取Worksheet函数类的平均属性”

excel vba为每个循环嵌套

我正在研究excelmacros,并陷入了一个困境。 需要帮助,请解决它。 我必须在表单中查找2行,并且对于1行中的每个值,查找2行中的单元格值。 如果第2行中的值范围等于某个条件值,则从第2行中检出并将该标志设置为true。 为了实现这个,我使用了两个For Each循环: Sub Sendmail () For Each cell in Rows("5").Cells.SpecialCells(xlCellTypeConstant) If cells.Value Like "*@*" Then Subj = "Fill the Sheet" Recipient = cell.Offset(0,-3).Value EmailAddr = cell.Offset.Value For Each row In Sheet14.Range("O244:AK244").Cells If Not row = '8.00" Then found = False Else found = True End If Next row If found = […]

更快的方式来循环两行10000+行

这个模块遍历表2中列a中的每个单元格,并且与sheet2中colmumn b中的每个单元格进行核对,如果它匹配“matches number”增加并放置在单元格im sheet3中。 数据量巨大,模块不断崩溃,有没有这样做(也许访问,或更有效的VBA模块)的方式。 请注意,我需要知道每个单元格的匹配数量,而不是重复的总数量。 先谢谢你! Sub findpatterns() Application.ScreenUpdating = False Dim RowCount1 As Long, ClmnCount1 As Long Dim RowCount2 As Long, ClmnCount2 As Long Dim Crntrow As Long, Lastrow As Long Dim Crntrow1 As Long, LastRow1 As Long Dim Recordrow As Long Recordrow = 1 RowCount1 = Sheets("sheet1").Cells(Rows.Count, "a").End(xlUp).Row ClmnCount1 = Sheets("sheet1").Cells(1, Columns.Count).End(xlToLeft).Column […]

通过Pagebreak合并文件

我想写一个程序,通过分页符合并两个文件。 例如,如果我有两个文件A和B,每个文件有三个分页符,我想通过复制分页符1之前的文件A中的所有数据,而不是分页符1之前的文件B中的所有数据来创build一个新文件,而不是所有数据在分页1和分页2之间的文件A中,比分页1和分页2之间的文件B中的所有数据等等 我有下面的代码,它只是打开两个文件,并从文件A复制数据,而不是从文件B的数据。我不知道如何更改代码合并两个循环,以便新文件将复制所有数据在分页1之前的文件A中,分页1之前的文件B中的所有数据等等。 任何帮助将非常感激! 谢谢! Sub Merge_Mchpg() 'Open two workbooks Workbooks.Open (Workbooks("Filepath.xlsx") Workbooks.Open (Workbooks("Filepath.xlsx")) Dim pgBreak As Variant Dim pgBreak2 As Variant Dim pgbrk1 As Integer 'Define variable for first worksheet pagebreaks pgbrk1 = 1 Dim pgbrk2 As Integer 'Define variable for second worksheet pagebreaks Dim SourceRange As Range 'Define the source range in the […]