Tag: foreach

尝试循环显示多个VBA表时发生错误

我已经写了这个代码来循环多个工作表并执行某个任务,但由于某种原因,我被告知下标在这一行超出范围: Sheets(Worksheetss(indexVal)).Range("B4:S25").Select 完整的代码可以在这里看到: Sub kopierforsatan() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayStatusBar = False Dim Worksheet As Variant Dim Worksheetss As Variant Dim outputs As Variant Worksheetss = Array("6_år_lav", "6_år_middel", "6_år_høj", "10_år_høj") Dim indexVal As Integer indexVal = 0 For Each Worksheet In Worksheetss Sheets(Worksheetss(indexVal)).Range("B4:S25").Select Application.CutCopyMode = False Selection.Copy Sheets(Worksheetss(indexVal)).Range("V4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ […]

VBA跳过第一个匹配的单元格

下面的代码跳过了第一个“命中”。 在“注释”中,G列中的“x”单元格将被粘贴到新的表格中。 但是,第一行带“x”的数字每次都被排除在外: Sub Test() For Each Cell In Sheets("Notes").Range("G:G") If Cell.Value = "x" Then matchRow = Cell.Row Rows(matchRow & ":" & matchRow).Copy Sheets("Completed Conversions").Select Range("A" & Rows.Count).End(xlUp).Offset(1).Select ActiveSheet.Paste Sheets("Notes").Select End If Next Sheets("Completed Conversions").Select End Sub 谢谢!

在VBA中获得连续单元格的价值

我有这个代码,我从Excel工作表中获取值,并根据条件显示结果。 在我的第二个if语句中,我想检查是否ocell.value < sd11 。 在检查之后,我需要检查接下来的五个连续值,它们是否相等。 如果是,则显示结果。 谁能告诉我如何得到下五个连续的单元格值? 我以为我在代码中提到过,但它不工作。 Sub DoStuff() Dim oCell As Range sd11 = Range("s11") For Each oCell In Range("e4:e48") If oCell.Value < sd13 Then Range("R2").Value = "Rule 1s voilation" End If If oCell.Value < sd11 And oCell.Value = oCell.Value + 1 And oCell.Value = oCell.Value + 2 And oCell.Value = oCell.Value […]

如何循环超越Excel表和列表在Stata中?

我刚开始与Stata合作,我无法弄清以下几点。 我怎样才能循环的Excel表和索引列表。 这现在工作正常。 clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear foreach index of local indices{ tobit theta index, ll(0) ul(1) outreg using "C:\stata\results.doc" , `append' local append "append" } }

Excel VBA:如果等于不是,则显示错误消息

无法弄清楚代码有什么问题。 我有一个代码,我需要检查是否在某些表格中可以find某些产品的ID之前下订单。 Private Sub Pardot_Click() Dim xlRange As Range Dim xlCell As Range Dim xlSheet As Worksheet Dim valueToFind As String valueToFind = pardID Set xlSheet = ActiveWorkbook.Worksheets("Noliktava") Set xlRange = xlSheet.Range("A1:A500") For Each xlCell In xlRange If xlCell.Value <> valueToFind Then MsgBox ("This product wasn't found in the database – ID: " & pardID.Text) […]

VBA:以“=”开头的单元格导致我的移动macros中出现问题

我目前有一些代码find不在第一列的单元格,并移动它们。 我正面临以“=”开头的单元格的问题。 你们可以想办法解决这个问题吗? 提前致谢。 Sub Move() Dim cel As Range, rng As Range Dim wk As Worksheet Set wk = ActiveWorkbook.ActiveSheet Set rng = wk.UsedRange For Each cel In rng If cel.Value <> "" And cel.Column <> 1 Then wk.Cells(cel.Row, 1) = cel.Value cel.Value = "" End If Next cel End Sub

Perl循环输出到Excel电子表格

我有一个Perl脚本,其相关位在下面发布。 # Pull values from cells ROW: for my $row ( $row_min + 1 .. $row_max ) { my $target_cell = $worksheet->get_cell( $row, $target_col); my $response_cell = $worksheet->get_cell( $row, $response_col); if ( defined $target_cell && defined $response_cell ) { my $target = $target_cell->value(); my $response = $response_cell->value(); # Determine relatedness my $value = $lesk->getRelatedness($target, $response); […]

Foreach循环从Access datable中使用Excel中的列提取文本文件

我所要做的是创build一个控制台应用程序,使用app.config中的SQL查询从Access数据库中提取单个表,以便可以在不更改应用程序中的代码的情况下更改SQL。 提取的信息必须是文本文件格式。 最难的部分是我有一个Excel文件与表的映射,我只需要提取信息,并添加其他。 例如,我将需要创build一个最初不在数据表中的新列,并给它一个默认值。 这些信息在Excel文件中。 我已经完成了连接,并且我从Access数据库中提取了一个需要临时数据表的表。 我已经有一个Excel文件的数据表,只有我需要在临时数据表中使用的列。 我需要创build一个foreach循环来检查Excel中的A列是否在使用中。 如果是的话,我需要检查另一列,包含Access数据表中的该列的名称,如果有我需要将该列提取到文本文件的值,如果没有值,我需要检查另一列包含一个默认值,我需要将该值添加到数据库中不存在的列。 如果在这两列中没有任何值,我只需要在文本文件中添加一个宽度值为空的空格。 所有提取到文本文件的列都需要有width-string.width,它们之间有一个空格,不需要提取列名。 这是我迄今为止: static void createfile(DataTable accessTable, DataTable excelTable) { string strFileData = ""; foreach(DataRow accessRow in accessTable.Rows) { foreach (DataRow excelrow in excelTable.Rows) { string fieldname = ""; fieldname = excelrow["FieldName"] //if it's not empty strFileData.insert accessRow[fieldname]; string test = accessRow[fieldname.ToString()]; if(position == 0) strFileData […]

“继续”变通办法

注:虽然在边界附近,但我认为这个问题更多地落在围栏的“明确答案”一边,而不是“以意见为基础”的一面。 我有以下代码来设置数据validation的单元格范围: For Each Cell In WorkCenterFields ' If previous cell is empty, clear data validation and go to next FOR iteration If Cell.Offset(0, -1).Value = "" Then Cell.Validation.Delete GoTo NextCell ' If previous cell matches this substring, use this list of values ElseIf InStr(1, Cell.Offset(0, -1), "INDENG", vbTextCompare) = 0 Then WorkCenterListFormula = "=Sheet0!B2:B11" […]

有没有办法让这段代码的粘贴部分在每次粘贴数据时一次循环一行?

我的这一段代码的目的是将D列的内容粘贴到另一张表中,如果在初始表格中同一行的列N中的内容是=“仅缩小”。 我正在努力find一种方法来粘贴到第二张表中的所有条目之间没有空行。 目前我正在sorting最初的表单,因此所有的REDUCE ONLY条目都是在列N的顶部,所以它们在输出表中被正确sorting,但是如果我得到一组不同的值在第N列有什么期望?是否有另外一种方式来expression:“cfdSht.Cells(c.Row – 1,1).PasteSpecial Paste:= xlPasteValues” 到目前为止,我得到了: Dim c As Range Dim rCheck As Range Dim LRMAIN As Long Dim cfdSht As Worksheet Dim mainSht As Worksheet Set mainSht = ThisWorkbook.Worksheets("Sheet1") Set cfdSht = ThisWorkbook.Worksheets("ProductSettingNgCfd") ''Set Last Row LRMAIN = mainSht.Range("A2").CurrentRegion.Rows.Count ''Set Range Set rCheck = mainSht.Range("B2:N" & LRMAIN) ''Copy any value in […]