Tag: for loop

如何定义范围内的variables

我刚开始VBA编码,我感到很震惊: 对于一个单元格这个程序工作: Dim score As Integer, result As String score = Range("A1").Value If score >= 60 Then result = "pass" Else result = "fail" End If Range("B1").Value = result 那么一列细胞呢? 循环可以为此工作? 我的代码使用循环 – 但如何定义范围内的variables? Dim score As Integer, result As String, I As Integer score = Range("AI").Value For I = 1 To 6 If score […]

For Loop超出参数VBA

我做了以下的循环,每个单元格下去,直到它到达与另一列中最后使用的单元格的水平的单元格。 但是,它远远超出了最后使用的单元格。 它工作正常,但只需要很长的时间运行,特别是当它有3万行通过! 有没有人有任何想法在这一个? Dim i As Long lMaxRows = Cells(Rows.Count, "K").End(xlUp).Row For i = 1 To lMaxRows Range("D" & lMaxRows + 1).Select ActiveCell.FormulaR1C1 = "0:00:00" lMaxRows = Cells(Rows.Count, "E").End(xlUp).Row Range("E" & lMaxRows + 1).Select ActiveCell.FormulaR1C1 = "1" Next i

Excel VBA – 如何使这个单一的循环

我有一段代码包含3 for循环。 我想找出一种方法,可能通过使用数组,使这一个单一的循环。 数据拼凑在一起的方式,4,5,6列没有填充数据。 它的工作,数据应该是什么是填充1行以上。 所以这个代码工作得很好,我只是在寻找一个更有效的编码方式。 谢谢! For i = 2 To erow If currentSht.Cells(i, 4).Value = "" Then currentSht.Cells(i, 4).Value = currentSht.Cells(i – 1, 4).Value End If Next i For i = 2 To erow If currentSht.Cells(i, 5).Value = "" Then currentSht.Cells(i, 5).Value = currentSht.Cells(i – 1, 5).Value End If Next i For i […]

使用For循环来填充combobox

对于一个项目,我想用一个可变数量的选项填充用户窗体上的combobox。 选项的数量取决于表单中前面给出的数量。 用户将input一个值并为所有这些值分配名称。 可能只有2个名字,但也可能有10个名字。 我希望Combobox使用给定的值(名称数量)来填充存储在不同位置的名称。 我目前的代码如下,但它给了我下面的编译错误,然后select.AddItem部分作为错误的来源.. 编译错误:期望的函数或variables Private Sub UserForm_Initialize() 'Sheet1.Range("A1") contains the value for the amount of names If Sheet1.Range("A1") = 0 Or Sheet1.Range("A1") = "" Then 'Do Nothing Else With ComboBox1 For n = 1 To Sheet1.Range("A1") 'col determines the column in which the names are found 'The first name is in column […]

VBAmacros代码列表名称

我有一个名单作为一列的Excel工作表,他们的工作时间作为下一列的值。 我想复制大于40的值的名称到新的表中,没有列中的空白。 新表应该有名字和工作时间; 值列中的任何文本都应该被忽略。 Sub CopyCells() Dim sh1 As Worksheet, sh2 As Worksheet Dim j As Long, i As Long, lastrow1 As Long Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") lastrow1 = sh1.Cells(Rows.Count, "F").End(xlUp).Row For i = 1 To lastrow1 If sh1.Cells(i, "F").Value > 20 Then sh2.Range("A" & i).Value = sh1.Cells(i, "F").Value End If […]

下一个循环无法为variables分配一个值 – VBA

我正在检查在3个不同combobox中select的3个值是否在某一行内。 如果是,则将该行号分配给一个variables,如果不是,则检查下一行。 该范围内的所有单元格都填充了数据,并且消息框显示了正确的值(仅用于检查目的),但If语句未移动到下面代码中的selectedrow = r行。 Dim Project, licence, state As String Dim selectedrow As Integer Dim LastRow As Integer Dim r As Integer Project = cmb_Project.Value licence = cmb_Licence.Value state = cmb_State.Value LastRow = Worksheets("Entitlements").Range("A" & Rows.Count).End(xlUp).row For r = 3 To LastRow MsgBox (Worksheets("Entitlements").Cells(r, 1).Value) MsgBox (Worksheets("Entitlements").Cells(r, 7).Value) MsgBox (Worksheets("Entitlements").Cells(r, 6).Value) If Worksheets("Entitlements").Cells(r, 1).Value […]

Excel VBA – 为特定值的循环

我试图创build一个For循环只select一些值,但不能解决语法,或者甚至可能? 我希望它是像 Dim i As Integer For i = 1,3,8,15 Then Do something Next i 有任何想法吗?

匹配string中的完整单词

我有下面的代码填充偏移单元格与服务应符合条件。 然而在这个阶段,它是在string出现在单元格内的基础上运行的,它将应用这个值而不是一个完整的单词。 例如,在我的标准中,我有“访问”,当不应该的时候,“Vistor”(在一个单元格内)将遵守我的代码。 请有人协助? Option Compare Text Sub CHECK_CELL_VALUES() Dim LASTROW As Long Application.ScreenUpdating = False With Sheet1 LASTROW = .Range("A1048576").End(xlUp).Row For i = 2 To LASTROW If Cells(i, 7).Value Like "*Service*" _ Or Cells(i, 7).Value Like "*Servicing*" _ Or Cells(i, 7).Value Like "* Labour*" _ Or Cells(i, 7).Value Like "* Job*" _ Or Cells(i, […]

通过excel中的数据循环访问公共区域

我想循环查看公司logging列表(a栏),并在那里有不止一个公司logging的部门(b栏)。 Raw Data Company Sector Company 1 A Company 1 B Company 2 C Company 2 D Company 2 E Desired Outcome Company Sector Company 1 A, B Company 2 C, D, E 希望得到这个结果的任何帮助

有和没有美元符号$的SSISvariablesExcel表名错误

我在一个catch 22的情况下,试图为每个循环编写一个dynamic创build一个Excel文件列表。 在每个循环中,我都有一个执行SQL任务,该任务运行一个create table语句,其中包含sheet / tab的名称。 这先于数据stream任务运行基于循环中设置的参数的查询,并尝试将结果写入Excel。 问题是在Excel目标对象或创build表的SQL任务中。 工作表的名称通过variables设置。 在所有在线的例子中,您不要在表格名称中包含美元符号($),如“report”。 但是,当我这样做时,Excel目标无法find工作表/选项卡,这意味着我无法编辑对象来映射/重新映射列。 但是,当我改变这个variables来包含像“report $”这样的美元符号时,Excel目标对象可以正常工作,但是当运行这个包的时候,create table步骤会抛出一个错误,提示“为'report'打开一个行集失败。对象存在于数据库中“。 有任何想法吗? "CREATE TABLE `" + @[User::excel_tab_name] + "` (