vba - 使用 VBA 进行条件插入

标签 vba excel

我试图在某些条件下在另一行基础下方插入一行。现在这段代码将遍历许多工作表。它适用于 1 张纸,但是当它尝试为下一张纸执行相同的功能时,它显示错误。任何人都可以帮我解决这个问题。我使用的代码如下:

Sub test()
Dim a As Worksheet
Dim lngRow As Long
Dim s As String
Dim z As Variant
s = "Sheet1,Sheet2"
z = VBA.Split(s, ",")
For Each i In z
Set a = Sheets(i)
For lngRow = a.UsedRange.Rows.Count To 1 Step -1
If UCase$(a.Cells(lngRow, 2).Value) = "R" Then
a.Range("A" & CStr(lngRow + 1)).Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next lngRow
Next i
End Sub

错误出现在这一行:
a.Range("A" & CStr(lngRow + 1)).Select

最佳答案

您收到错误的原因是您只能 Select事件工作表上的范围。要按原样修复您的代码,请添加 a.ActivateFor 之前环形。

更好的是,不要Select一点也不。

关于vba - 使用 VBA 进行条件插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433948/

相关文章:

vba - vba中的错误1004

ms-access - 处理Access中的输出错误

json - VBA解析json并循环不同的对象

arrays - 具有动态多个条件的 SUMIF/SUMIFS 的 Excel 总和

java - 读取使用带有 Excel 工作表的链接表的 Access 数据库

xml - 功能类似于Excel中的importxml?

excel - 如何在excel中选择包含相同值的最后一个单元格

vba - 在 VBA Excel 中复制粘贴范围

arrays - 将一列数字读入数组的最快方法

vba - 从 Excel VBA 发送格式化的 Lotus Notes 富文本电子邮件