Tag: 循环

循环遍历行,将单元格值复制到不同的工作表

可能非常简单 – 希望得到一些帮助。 我有一个36x36matrix,量化各种汽油等级相对于其他汽油等级的值。 我想编写一个循环,将每行移动到另一个工作表(按连续顺序),而不必一遍又一遍地复制和粘贴相同的代码(更改范围和工作表)。 感谢任何帮助。 Sheets("Formulas").Range("Z8:BI8").Copy With Sheets("CONV7.8RVP87OCT").Range("A10000").End(xlUp).Offset(1, 0) .PasteSpecial xlPasteFormats, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False .PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End With Sheets("Formulas").Range("Z9:BI9").Copy With Sheets("CONV7.8RVP89OCT").Range("A10000").End(xlUp).Offset(1, 0) .PasteSpecial xlPasteFormats, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False .PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End With Sheets("Formulas").Range("Z10:BI10").Copy With Sheets("CONV7.8RVP93OCT").Range("A10000").End(xlUp).Offset(1, 0) .PasteSpecial xlPasteFormats, Operation:=xlNone, SkipBlanks _ […]

Excel Macro用于用户input,如果不正确,则循环返回以供用户重新input

美好的一天 我试图根据用户input和更新表单上的范围,但是我却被要求用户在input不匹配任何预定义条目时“重新input”input。 下面是我的代码 Sub testing_input_in_formula() Dim wbk1 As Workbook Dim strName As String test1 = "C:\Users\hayekn\Desktop\book1.xlsx" Set wbk1 = Workbooks.Open(test1) With wbk1.Sheets("Sheet1") On Error Resume Next Application.DisplayAlerts = True strName = InputBox(Prompt:="Enter the week you would like to update", _ Title:="Week Selection.", Default:="Week 1") If strName = "Your Name here" Or _ strName = vbNullString […]

如何循环每一行,如果列是这个值,然后将某些值插入到另一列

最初,excel文件C列上的值完全没有值。 这是我想要做的逻辑,如果在B列上的值为num1,在列C上设置为100,否则如果列在列B上为num2,则在列C上设置200,否则在列C上设置200。只做一行。 这就是为什么我需要一个循环,逐行进行,它将停止,直到到达第11行,这是值的最后一行。 我已经粘贴了我已经尝试使用下面的循环代码,它不起作用。 请帮我纠正我的循环,或者也许我的公式有一些问题,因为我不知道我是否正确地插入公式中的计数器variables不是。 使用我当前的工作代码在C列中生成值的当前输出。 理想的输出,我想实现使用代码。 我目前的代码,生成上面的第一个屏幕截图的C列中的值 Set objShell = CreateObject("Wscript.Shell") Set objExcel = CreateObject("Excel.Application") Set objFSO2 = CreateObject("Scripting.FileSystemObject") Set objWorkbook2 = objExcel.Workbooks.Open("D:\Shared\tempname\test\test2.xlsx") '********** Instantiate the Workbook.Worksheets ********** ' object to open a particular ' Excel Worksheet Set objWorksheet2 = objWorkbook2.Worksheets(c_FirstWksht) Dim cellObj set cellObj = objWorksheet2.cells(3, 3) cellObj.formula = "=IF(B3=""NUM1"",""100"",IF(B3=""NUM2"",""200"",""300""))" Set objWorkbook2 = […]

更快的方式来循环两行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 […]

VBA将每隔一行切换到列的最后一行并粘贴到新列,然后删除空行

希望能得到一些帮助。 我是VBA的新手,特别是循环。 我得到的数据长度不同,它将在A列中包含错误string(A1,A3,A5,…)和相应的错误消息(A2,A4,A6,…)。 我想剪切错误信息数据(A2,A4,A6,…)并将其粘贴到列H(H1,H3,H5,…)中,直到列A中的最后一行数据。然后像新清空的行(2,4,6,…)被删除,所以我有一个错误string在列AI表可以使用“文本到列”上,并在列H中相应的错误消息。 最终目标是在做一个“文本到列”之后,我将有一块数据,我可以变成一张表。 如果你认为有更好的方法比剪切粘贴删除空行方法,那么我都是耳朵。 如果你有一个很好的资源来构build循环的X代码到最后一排,我也喜欢打扰你。

Excel VBA For循环和嵌套的IF语句的计数器

我有一个单元格中的值应该匹配目录中文档的文件名。 Sheet3列A1 = C:\ Users \ Admin \ Desktop \ Folder1 Sheet3栏A2 = test.xls 'Location of directory sCurrentXLDirectory = Worksheets("Sheet3").Cells(1, 1).Value Set CurrentXLFSO = CreateObject("Scripting.FileSystemObject") ProceedNow = True Set CurrentXLFolder = CurrentXLFSO.GetFolder(sCurrentXLDirectory) Set CurrentXLFiles = CurrentXLFolder.Files 'Always 10 files in this folder If CurrentXLFiles.Count <> 10 Then MsgBox "Wrong Directory or Folder Mismatch" ProceedNow = […]

继续在下一行的代码

我有以下代码: Sub rangeSelect() Dim r1 As Range, r2 As Range, multiAreaRange As Range, lcopytorow As Long Worksheets("data").Activate Set r1 = Range("c9:i9") Set r2 = Range("m9:af9") Set multiAreaRange = Union(r1, r2) LCopyToRow = 2 If Range("L9").Value = "yes" Then multiAreaRange.Select Selection.Copy Sheets("drop").Select Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select ActiveSheet.Paste LCopyToRow = LCopyToRow + 1 Sheets("data").Select End If […]

根据价值变化突出显示其他Excel行

所以我们假设我有一个电子表格,其中第一列的值是这样的: 1 1 1 2 2 4 4 6 我想突出显示每个其他的价值组。 这意味着前3行,全部包含1,将突出显示一种颜色。 那么2s就没有填充。 然后,第一列中包含4的行将突出显示与第一个块相同的颜色。 基本上,我想在每次第一列中的值改变时交替填充/不填充。 这些值不一定是数字,所以如果一个新的列需要转置的数值,请让我知道。 感谢您检查我的问题。 如果需要澄清,请不要犹豫。

VBA Excel从具有循环的数组中返回值

我在vba函数中有一个小循环,每个月 – 即参数 – 从列表中获得相应的合同,除了十二月份以外的每个月都有效。 Contractlist是一个垂直数组(3,5,7,9,12)。 这是代码: k = 1 Do Until Month(Parameter) < contractlist(k, 1) k = k + 1 Loop nextcontract = MonthName(contractlist(k, 1)) 问题如下:当月份是十二月,月份(十二月份)从不小于contractlist(k,1),因为12是该数组中最小的值。 在这种情况下,我想跳到数组的第一个值,即“3”。 换句话说,在最后一行nextcontract应该是MonthName(contractlist(1,1))。 有人可以给我一个提示如何做到这一点? 谢谢,你的帮助真的很感激!

做一个没有“预定义”单元的循环(即只是“B”而不是“b5”)

这是我的问题:我试图运行一个特定的一组数据,在每个更新的金额变化的循环。 如果分数大于0,那么它将在表格数据的下一个可用空行中的A,B和C列中的特定行剪切/粘贴。 这是我到现在为止: Sub whatever() Dim score As Integer, sStart As Integer, sTeller As Integer, lcount As Integer, result As String sStart = Sheets("Packed").Range("F1").Value sTeller = Sheets("Packed").Range("E1").Value lcount = sStart score = Range("B& lcount").Value Do While lcount < sTeller Sheets("Packed").Select If score > 0 Then _ Range("A&lcount:C&lcount").Select Selection.Cut Sheets("data").Select Range("A5").Select Selection.End(xlDown).Select Selection.Offset(1, 0).Select ActiveSheet.Paste lcount […]