有任何人在excel vba中遇到问题,其中复制和粘贴行并检查某些条件的循环有时会遗漏信息,并且在我尝试调试并运行之后工作正常
我有一个循环
For rnum = 3 To LastRow
'if all cells are equal to the Comboboxes then copy and paste the row
ThisWorkbook.Activate
If Sheets("Revised Budget").Cells(rnum, 1).Value = BUval And _
Sheets("Revised Budget").Cells(rnum, 2).Value = TeamLocVal And _
Sheets("Revised Budget").Cells(rnum, 3).Value = YrVal And _
Sheets("Revised Budget").Cells(rnum, 9).Value = InstVal Then
Sheets("Revised Budget").Range(Cells(rnum, 1), Cells(rnum, 12)).Copy
NewWkbk.Sheets("Actual").Activate
If NewWkbk.Sheets("Actual").Range("A1").Offset(1, 0).Value = "" Then
NewWkbk.Sheets("Actual").Range("A1").Offset(1, 0).PasteSpecial
Else
NewWkbk.Sheets("Actual").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial
End If
Application.CutCopyMode = False
End If
Next rnum
答案 0 :(得分:0)
你的变量是字符串还是整数? 如果其中任何一个是字符串,您可以尝试确保它不是您的字符串匹配大写的问题。
ucase(Sheets("Revised Budget").Cells(rnum, 3).Value) = ucase(YrVal)
答案 1 :(得分:0)
考虑将您的所有.value
更新为.value2
。我遇到了(可能)类似的问题,并为我修复了它。
答案 2 :(得分:0)
我想我可能已经通过更多的研究找到了它。运行宏的页面包含已过滤的数据。我输入了一个ShowAllData代码,我相信应该解决这个问题。