我创建了一个宏,它复制某些单元格并将其粘贴到新窗口(Excel)中。我试图在宏中添加一个If Then语句,在粘贴数据后,如果一个特定的单元格为空(假设为A2),我希望宏关闭该窗口并结束宏。我尝试了以下编码,但它给了我 编译错误:如果没有结束IF阻止 。
Windows("Data.xlsx").Activate
Rows("13:18").Select
Selection.Copy
Windows("Data Paste.xlsx").Activate
Range("A1").Select
ActiveSheet.Paste
If ActiveSheet.Range("A2").Value = "" Then
ActiveWindow.Close
End Sub
End If
Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
为了更清楚,我需要的是什么;第一行13:18从“DATA.xlsx”复制并粘贴在“Data Paste.xlsx”中,然后检查单元格A2是否为空,如果是,则关闭窗口“Data Paste.xlsx”并停止宏运行。如果A2单元格不为空,我希望宏继续而不关闭窗口并继续下面的代码:
Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'Rest of the code
请找我解决方案。
答案 0 :(得分:1)
您必须更正多个语法错误,如下面显示的示例Excel VBA Sub
中所示:
Sub CopyClose()
Windows("Data.xlsx").Activate
Rows("13:18").Select
Selection.Copy
Windows("Data Paste.xlsx").Activate
Range("A1").Select
ActiveSheet.Paste
' check for the condition, and close the window and exit sub if true
' otherwise, execute the next line
If ActiveSheet.Range("A2").Value = "" Then
ActiveWindow.Close
Else
Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
End Sub
希望这可能会有所帮助。
答案 1 :(得分:1)
End Sub应该是Exit Sub。退出提前终止,结束意味着代码的自然结束。
public class BigIntegerSerializer extends JsonSerializer<BigInteger> {
@Override
public void serialize(BigInteger value, JsonGenerator jgen,
SerializerProvider provider) throws IOException {
jgen.writeString(value + "");
}
}
答案 2 :(得分:0)
我找到了答案,而不是End Sub
使用Exit Sub
工作就完美!!
Range("A1").Select
ActiveSheet.Paste
If ActiveSheet.Range("A2").Value = "" Then
ActiveWindow.Close
Exit Sub
End If
Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub