Tag: foreach

在for-each循环中复制dynamic范围

为了完成这个任务,我花了几个星期的时间试图拼凑出一个完整的VBA,以完成这个任务,但现在我正在向你们所有人寻求答案。 我试图复制一个范围从ws2,列A:K的行开始与值匹配我在ws1中的值我到ws1中的价值我开始的行。 被复制的标准是1和0。 这基本上是一个美化的v-lookup粘贴dynamic范围。 我想出了循环机制,现在我只需要帮助编写复制选定单元格的代码。 以下是我到目前为止: For Each i In ws1.Range("A4:A26") For Each c In ws2.Range("A8:A28") If i.Cells.Value <> c.Cells.Value Then 'select columns A:K in the row with the value c in ws2 'open ws1 'paste selection to[starting at] column D in ws1 Exit For End If Next c Next i

循环浏览文件夹,并为每个工作簿复制一个范围粘贴到静态工作簿

我试图通过工作簿的列表循环,然后为每个工作簿将当前工作簿中工作表上的几个范围复制并粘贴到主工作簿。 我无法select工作簿,所以我可以使用它 – 我不断收到下标超出范围,我认为我的文件path是正确的。 我已经试过扩展和没有,当我在我的电脑中search扩展它工作正常。 有任何想法吗? 我试图打开文件(这是一个变种),这是行不通的,因为我不认为它被认为是一个工作簿。 我试图打开该文件的名称,但这也不起作用。 最后,我命名一个范围的实际名称,并试图做Workbooks(APath)。打开,但没有奏效。 我错过了什么? 谢谢! 我将文件path切换到假的。 Dim fso As FileSystemObject Dim MyObj As Object, MySource As Object, file As Variant Set fso = New FileSystemObject FilePath = InputBox(Prompt:="Type the folder file path: this:C:\Users\A\Desktop \test_folder\", Title:="UPDATE MACRO") Set MySource = fso.GetFolder(FilePath) For Each file In MySource.Files 'This does not work… […]

PHP:使用foreach修改multidimensional array的值

我有一个使用Yii2的项目,在我的项目中用户可以上传一个excel文件,系统读取数据并将其设置成一个新的二维数组,例如: Example.xls 这是我在我的控制器中使用的代码: for ($row = 1; $row <= $highestRow; ++$row) { $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE); if (!is_null($rowData[0][0])) { foreach ($rowData as $key => $value) { foreach ($value as $vKey => $vValue) { $tempArrayData[] = $vKey . "_" . $vValue; } } $arrayData[] = $tempArrayData; […]

我的EXCEL VBA Script极低,尽pipe它很短

这是我写的一个脚本。 我在610行左右的表单上运行它,这需要很多时间,直到它给我一个输出,而且每次我在这个范围内更改一个值的内容后,我都要等待10-15秒左右。 Function csvRangeNew(myRange As Range) Dim csvRangeOutput Dim entry As Variant For Each entry In myRange If Not IsEmpty(entry.Value) Then If entry.Value = "New" Then If Not IsEmpty(Worksheets("wholelist").Range("A" & entry.Row)) Then csvRangeOutput = csvRangeOutput & Worksheets("wholelist").Range("A" & entry.Row).Value & "," End If End If End If Next csvRangeNew = Left(csvRangeOutput, Len(csvRangeOutput) – 1) End […]

VBA Excel如何激活工作表1中的工作表2,3和4的macros

我有一个文件夹中的3个工作簿。 我使用macros将该文件夹中每个工作簿中的每个Sheet1复制到我的工作簿示例中 。 在我的工作簿示例中,现在有4个工作表,名为sheet1 , sheet1(4), sheet1(3), sheet1(2)。 我想使用一个button表单,所以当我点击它时,代码(下面)运行除了表单之外的任何其他表单。 Sub Copy_Sum() Dim ws As Worksheet 'Selecting the worksheets to loop through K = 1 For Each ws In ThisWorkbook.Worksheets 'Skiping the sheet1 If ws.Name <> "Sheet1" Then 'Counting the number of rows for automation rowscount = Cells(Rows.Count, 1).End(xlUp).Row temp = 0 'add name Cells(rowscount + […]

VBA(Excel)在每个循环上运行时错误13

我在这个代码中find了这个奇怪的问题。 我试图从Outlook中的所有子文件夹中列出Excel中的所有电子邮件: 我已经search了几个星期,没有任何运气。 'Requires reference to Outlook library Option Explicit Public Sub ListOutlookFolders() Dim olApp As Outlook.Application Dim olNamespace As Outlook.Namespace Dim olFolder As Outlook.MAPIFolder Dim rngOutput As Range Dim lngCol As Long Dim olItem As Outlook.MailItem Dim rng As Excel.Range Dim strSheet As String Dim strPath As String Set rngOutput = ActiveSheet.Range("A1") Set olApp […]

Excel VBA – 寻找简化循环的方法

我最近做了一个循环,每个单元格中的string,searchstring中的“_”,如果有一个切断了该位和任何字符后面。 看着代码,我意识到它可能太精细,可以缩短或简化,但我不太清楚如何去做。 有没有办法让这一点代码更有效率? Sub Name_Change() Sheets("Sheet1").Activate Dim tg_row As Integer tg_row = 1 For Each nm_cl In Range("Table1[Name]") If InStr(1, nm_cl, "_", vbTextCompare) = 0 Then Range("Table1[Name]").Cells(tg_row, 1).Value = nm_cl.Value Else Range("Table1[Name]").Cells(tg_row, 1) = _ Left(nm_cl, InStr(1, nm_cl, "_", vbTextCompare) – 1) End If tg_row = tg_row + 1 Next nm_cl End Sub 感谢您的帮助!

对于每个单元格…下一个单元循环只能工作一次

我的代码发现预定义范围“r”中的单元格的值为“Completed”,但使用For Each Cell和Next Cell命令不会循环代码以find多个“Completed”单元。 我错过了什么? 任何帮助,将不胜感激。 Sub Move_Burn() Dim Msg As String, Ans As Variant Msg = "Are you sure you want to move the completed pumps?" Ans = MsgBox(Msg, vbYesNo) Select Case Ans Case vbYes Dim r As Range, cell As Range, mynumber As Long, r2 As Range Set r = Range("AR15:AR1000") Set r2 […]

Excel VBA:必须有一个更好的方法来使用循环删除基于单元格内容的行

报告会生成如下所示的表单: 格式是从源数据inheritance的,数据是A,D和G列,A合并ABC,D自己合并DEF和G. 我只想保留用蓝色突出显示的行。 我希望macros检查G:G的内容,如果Cell.Text =“”,然后wholerow.delete,否则保持独立。 唯一的问题是,当它删除第2行,然后第3行成为第2行,这意味着它不会删除它,因为它已经检查第2行。第4行现在成为第3行,这是下一个检查,和它看到文本在那里不删除,移动到第四行,删除它,第5行成为第4行,保持未选中,它移动到第6行(现在第5行),看到这是空白,删除它,但第7行现在成为第6行,不会被删除…等等。 我发现周围的唯一方法是使用GOTO重新启动循环,然后使用另一个GOTO早日退出循环。 我明白,这可能不是最优雅的解决scheme。 iRange = Application.Workbooks(2).Worksheets(2).Cells(Rows.Count, "A").End(xlUp).Row + 1 Debug.Print (iRange) RestartLoop: For Each rCell In Application.Workbooks(2).Worksheets(2).Range("G2:G" & iRange) If Not rCell.Offset(0, -3).Value = "" Then If rCell.Text = "" Then Debug.Print (rCell.Address) rCell.EntireRow.Delete GoTo RestartLoop End If Else0 GoTo LeaveLoop End If Next rCell LeaveLoop: 'Do the next thing […]

数组中的Foreach循环以及如何包含它

我一直在努力解决这个问题一个星期,我没有更多的select,只能在这里问一个问题在计算器。 我目前使用PHP Spout来读取一个xlsx文件的行,数组看起来像这样 Array ( [Name] => abcd1234 [Address] => abcd1234 [Number] => abcd1234 ) Array ( [Name] => abcd1234 [Address] => abcd1234 [Number] => abcd1234 ) Array ( [Name] => abcd1234 [Address] => abcd1234 [Number] => abcd1234 ) foreach循环看起来像这样 // Number of sheet in excel file foreach ($reader->getSheetIterator() as $sheet) { // Number of […]