Tag: foreach

如何正确地写下面的嵌套For Each循环?

所以,我有一个数据sorting问题。 本质上,我必须排第2行的单元格在第1行的近似值之下。 数据通常会显示为: 但是我要求Row2的数据在它的Row1对象的近似值(在1.2之内)被sorting,如下所示: 我相信最好的办法是创build一个For Each循环的嵌套集合,如下所示: Dim F As Range Dim Q As Range For Each F In Range("A1:C1") For Each Q In Range("A2:C2") If Q.Cell.Value <= (F.Cell.Value + 1.2) Then F.Offset(1, 0).Value = Q.Cell.Value Exit For End If Next Q Next F 虽然这已被certificate是具有挑战性的 我的意图是反复检查Row1的值,并且,如果在Row2中find了具有必要条件的值,请将其置于Row1中的对应项下。 代码已经暂停,但是,由于“运行时错误'438':对象不支持此属性或方法”。 如何正确编写代码以避免这样或类似的错误? 非常感谢! 如果您有任何改进build议,请随时提出build议。 最好,

对于Excel VBA中的每个循环,我如何引用公式中的单元格地址?

一旦公式被附加到单元格中,我最初注释掉的代码需要用户拖拽公式。 我已经修改了下面的过程,我从一个For each cell循环切换 – 可以这样做已经完成了For each循环结构? 利用Cell.address或类似的东西? 请假设我的variables都已定义。 Dim client_row As Long 'Dim v As Long Dim v As Variant Dim i As Integer i = 2 client_row = 0 LASTROW2 = Range("B" & Rows.Count).End(xlUp).Row Set rng2 = Range("N2:N" & LASTROW2) ' For Each cell In rng2 ' If cell.Offset(0, -13) <> "" Then […]

Foreach over Excel单元格只返回运行中的第一行,但在单步执行该方法时正常工作

我使用Excel电子表格作为时间段logging的数据表。 结构是这样的: ID Person Start End 1 Alan 5/1 5/3 2 Bobbi 5/3 5/4 3 Chuck 5/1 5/2 5 Eugenia 5/3 5/6 6 Chuck 5/10 5/12 Start和End被格式化为date字段。 我在VBA模块中编写了一个方法来查询这个表并返回一个给定的人的所有行,比如Chuck 。 在SQL中,这很容易( select fields from History where Person = something )。 我目前正在使用一个foreach循环,并testing人的价值。 我的循环如下所示: Public Sub UpdatePeriod(currentPeriod as timePeriod) Dim indexCell As Range Dim colPeriods As New Collection […]

Excel VBA在Foreach循环上运行macros而不切换表格

我在VBA上有一个模块,它基本上为包含列中文本的每个单元格运行一个foreach循环。 然后将每个单元格的内容复制到调用另一个函数(DailyGet)的另一个工作表中。 从函数生成的内容被复制回原来的工作表(我通过录制一个macros来生成这个代码)。 但是,由于在foreach循环中要处理的单元很多,因此每次运行时都会在macros块之间进行切换,因此非常耗时。 有什么办法可以加快这个过程吗? Sub DailyComposite() Dim SrchRng As Range, cel As Range Set SrchRng = Range("B2:B100") For Each cel In SrchRng If cel.Value <> "" Then Worksheets("Calculations").Range("B1").Value = cel.Value Sheets("Calculations").Select Call DailyGet Range("D3:Z3").Select Application.CutCopyMode = False Selection.copy Sheets("Summary").Select cel.Offset(0, 1).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False End If Next cel Sheets("Calculations").Select Application.CutCopyMode […]

VBA – 对于循环throuth每行不能工作(我的数据集没有改变)

我有一个大的Excel数据集被清理,在这里我想要logging一个macros来自动执行其中一个步骤。 请看下面的屏幕截图,我想要做的是让程序将名称(列C)下的描述(如果有的话)移动到上面的行F列。 例如,在C3中剪切值并粘贴到F2。 数据集的屏幕截图 我使用每个循环来遍历每一行,但如果我运行我的代码没有任何反应。 我使用countblank()函数来标识只包含描述的行。 这是我的代码: Sub ForEach_Loop() Dim ws3 As Worksheet Set ws3 = Worksheets("Sheet3") Dim CutCell As Integer Dim PasteCell As Integer CutCell = 2 PasteCell = 1 Dim Count_Blank As Integer Dim rng As Range Dim row As Range Set rng = ws3.Range("A1:M300") For Each row In rng.Rows Count_Blank = Application.WorksheetFunction.CountBlank(ws3.Range(ws3.Cells(1, […]

用PowerShell读取Excel文件

我有一个excel服务器列表,其中列D是主机名和列F区(如dev,int,prd)。 现在我想阅读这个excelfile与PowerShell和打印每个主机名具有区域开发。 我需要改变什么? $FilePath = "C:\serverlist.xlsx" $SheetName = "serverlist" $objExcel = New-Object -ComObject Excel.Application $objExcel.Visible = $false $WorkBook = $objExcel.Workbooks.Open($FilePath) $WorkSheet = $WorkBook.sheets.item($SheetName) $Range = $WorkSheet.Range("F2:F150").Text Foreach ($cell in $Range) { If ($cell -like "dev") { Write-Host "hostname from Column D" } }

通过foreach循环从Excel导入

我打算通过foreach循环import和处理各种Excel文件。 import本身不工作,虽然Stata不会识别“x”作为Excel文件名的替代品。 local excelfiles "bb_01 bit0_2 bun comp_03 comp_c01m LLU-ck" foreach item of local excelfiles { import excel using "D:\…\…\…\Data\Files\`x'.XLS", sheet("DynamicReport") cellrange(A2:AI201) firstrow keep v1 v2 v3 v4 save "D:\…\…\…\…\`x'.dta", replace 我得到的错误是file D:\…\…\…\…\Data\Files.XLS not found

按行与COUNTIF匹配列

我正在尝试创build一个自定义函数来评估一些数据。 数据包括从活生物体中取出的几个样品(列),细菌+其数量(行)。 我知道哪些细菌是独特的(只出现在1个样本中),但我想知道每个样本中有多less独特的细菌。 要知道哪些细菌是独特的,我使用=COUNTIF(A:A,">"&0)在每一行,如果返回1,那么它是唯一的。 理想情况下,我正在想的是: Function Custom(sampleRange, occurringBacteria) As Integer Dim bacteriaUniqueToSample as Integer: bacteriaUniqueToSample = 0 For Each sampleRange And occurringBacteria If sampleRange > 0 And occurringBacteria = 1 Then bacteriaUniqueToSample = bacteriaUniqueToSample + 1 Next Custom = bacteriaUniqueToSample End Function 当然,这是不可能的。 例:

范围循环,其中一个单元格的值是空白的

我已经设定了一个范围。 该范围中的一些单元格具有值,且很多单元格不具有值,它们是空白的。 我有一个范围循环需要时间,因为它处理每个单元格: For Each cel1 In rngsh1 以上处理范围内的所有单元格。 范围循环只处理非空白单元格的确切语法是什么? 就像For Each cel11 in rngsh1 and not nothing我知道这个语法是错误的,但我正在寻找一个正确的。

Excel / VBA:如何从多个Excel文件复制数据

我想遍历文件夹中的所有Excel文件,以便对每个文件执行一些操作(所有文件的布局和Sheet1数据都是相同的)。 到目前为止,我有下面的代码给我一个特定文件夹中的Excel文件列表。 我无法弄清楚自己是如何从每个文件复制数据 – 具体而言, 我需要从每个文件中复制范围A10:E50中的数据,然后将其粘贴到当前文件中的页面上 (全部在下面)。 有人可以帮我弄这个吗 ? 我目前的代码: Sub FindFiles() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim ws As Worksheet Set objFSO = CreateObject("Scripting.FileSystemObject") Set ws = Worksheets.Add Set objFolder = objFSO.GetFolder("C:\Users\mo\Desktop\Test-Import\") 'ws.Cells(1, 1).Value = "The folder " & objFolder.Name & " contains the following Excel files:" […]