如何使用;“插入行”;在VBA中用于一系列单元格(Excel 2013)
我是VBA新手&希望有人能帮我-我搜索了这个特定的问题,但我还没有找到确切的我要找的 我正在尝试编写一个模块(使用MS Office Professional Excel 2013),该模块将根据每行“O”列中的整数插入行 通过对单元格进行硬编码,我可以使其在一行工作:如何使用;“插入行”;在VBA中用于一系列单元格(Excel 2013),vba,excel,Vba,Excel,我是VBA新手&希望有人能帮我-我搜索了这个特定的问题,但我还没有找到确切的我要找的 我正在尝试编写一个模块(使用MS Office Professional Excel 2013),该模块将根据每行“O”列中的整数插入行 通过对单元格进行硬编码,我可以使其在一行工作: Sub InsertRow() Set currentcell = Sheets("Sheet1").Range("O2") Dim i As Integer, n As Integer, m As Long n = c
Sub InsertRow()
Set currentcell = Sheets("Sheet1").Range("O2")
Dim i As Integer, n As Integer, m As Long
n = currentcell.Value
m = currentcell.Row
For i = 1 To n
Rows(m + 1 * i).Insert
Next i
End Sub
我现在要做的是创建一个循环,该循环将对整个工作表执行此操作。以下是我现在拥有的:
Sub InsertRow()
Set currentcell = Sheets("Sheet1").Range("O2:O400")
Dim i As Integer, n As Integer, m As Long
n = currentcell.Value
m = currentcell.Row
For i = 1 To n
Rows(m + 1 * i).Insert
Next i
Loop
End Sub
这当前返回编译错误:没有Do的循环。
我们将非常感谢您对此问题提供的任何帮助、资源和建议
提前谢谢
最好的,
Liz从代码中删除
循环。它是Do
循环结束的语法,而不是for
循环结束的语法
Sub InsertRow()
Set currentcell = Sheets("Sheet1").Range("O2:O400")
Dim i As Integer, n As Integer, m As Long
n = currentcell.Value
m = currentcell.Row
For i = 1 To n
Rows(m + 1 * i).Insert
Next i
End Sub
更新:
在注释之后显示循环范围
Sub InsertRow()
Dim rng as Range
Dim i as integer, n as integer, m as integer
Set rng = Sheets("Sheet1").Range("O2:0400")
For Each c in rng
i = c.value
m = c.row
Rows(m + 1 * i).Insert
Next c
从代码中删除循环
。它是Do
循环结束的语法,而不是for
循环结束的语法
Sub InsertRow()
Set currentcell = Sheets("Sheet1").Range("O2:O400")
Dim i As Integer, n As Integer, m As Long
n = currentcell.Value
m = currentcell.Row
For i = 1 To n
Rows(m + 1 * i).Insert
Next i
End Sub
更新:
在注释之后显示循环范围
Sub InsertRow()
Dim rng as Range
Dim i as integer, n as integer, m as integer
Set rng = Sheets("Sheet1").Range("O2:0400")
For Each c in rng
i = c.value
m = c.row
Rows(m + 1 * i).Insert
Next c
如果您正在为
执行循环,则不需要循环
。您已经有了循环
,它是执行
循环的结尾,而不是for
。此外,在循环中,您似乎没有递增m
。不确定这是故意的还是无意的,所以我们不会一直打汤姆。因此,将currentcell
设置为循环中的一个单元格。如果要执行for
,则不需要执行循环
。这里有循环
,它是do
循环的结束,而不是for
。此外,在循环中,您似乎没有递增m
。不确定这是故意的还是无意的,所以我们不会一直打汤姆。因此,将currentcell
设置为循环中的一个单元格。谢谢汤姆!这是有道理的。现在,我收到了错误“类型不匹配”参考行:“n=currentcell.Value”当前值是多少?如果它不包含整数,它将抛出错误。如果单元格不总是包含整数,也许可以将n的声明更改为variant
。谢谢Tom!这是我在这里的第一篇文章,所以我为原始文章中缺少格式表示歉意。该值是一个整数,我得到的是“Variant”和“integer”两个错误。在我占用您更多时间之前,我将搜索此特定问题。@Liz该变量当前包含范围(“O2:O400”)
。您只能从单个单元格中获取value
。谢谢@findwindow-我可以使用“value”之外的其他选项来从多个单元格中获取值吗?谢谢Tom!这是有道理的。现在,我收到了错误“类型不匹配”参考行:“n=currentcell.Value”当前值是多少?如果它不包含整数,它将抛出错误。如果单元格不总是包含整数,也许可以将n的声明更改为variant
。谢谢Tom!这是我在这里的第一篇文章,所以我为原始文章中缺少格式表示歉意。该值是一个整数,我得到的是“Variant”和“integer”两个错误。在我占用您更多时间之前,我将搜索此特定问题。@Liz该变量当前包含范围(“O2:O400”)
。您只能从单个单元格中获取value
。谢谢@findwindow-我可以使用“value”之外的其他选项来从多个单元格中提取吗?