我对VBA很新,上周一直在教自己。我承担了一项对我来说可能有点复杂的任务。
我有一个包含A - AE列的文档 我需要浏览此文档并将信息移到单独的表格上,具体取决于它是什么。 我现在正试图在移动信息之前使用需要匹配2个要求的IF语句。我可以将每个单独的要求都工作,但不能同时使用,因为不断出现类型不匹配错误。
我不知道我做错了什么。任何帮助都感激不尽。
Sub copyrows()
Dim Test As Range, Cell As Object
Set Test = Range("G2:Z4000") 'Substitute with the range which includes your True/False values
For Each Cell In Test
If IsEmpty(Cell) Then
Exit Sub
End If
If Cell.Value = "Refund" And "Commission" Then
Cell.EntireRow.Copy
Sheet3.Select 'Substitute with your sheet
ActiveSheet.Range("A65536").End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
End If
Next
End Sub
答案 0 :(得分:3)
If Cell.Value = "Refund" And "Commission" Then
应改为:
If Cell.Value = "Refund" Or Cell.Value = "Commission" Then
你必须明确每个条件用布尔运算符分隔,如AND或OR。
答案 1 :(得分:2)
上述答案中已经提到了错误的原因@IanL
但是,您的代码远未得到优化。
您可以替换5行:
Cell.EntireRow.Copy
Sheet3.Select 'Substitute with your sheet
ActiveSheet.Range("A65536").End(xlUp).Select
Selection.Offset(1, 0).Select
ActiveSheet.Paste
用1:
Cell.EntireRow.Copy Destination:=Sheet3.Range("A65536").End(xlUp).Offset(1)
仅使用完全限定的Select
对象,未使用ActiveSheet
,Selection
或Range
。