Private Sub SaveAndClear()
Dim Header, Deatil, Order As Range
Dim lastrow1, lastrow2 As Long
Dim i As Integer
lastrow1 = Sheet1.[B65536].End(xlUp).Row '取得sheet1 B列末行向上第一个有值的行数
Worksheets("sheet1").Activate
Set Header = Range("C3, E3, G3, G4, C5:C9, E5:E9")
Set Deatil = Range(Cells(, ), Cells(lastrow1, ))
Set Order = Union(Header, Deatil)
'保存
For i = To lastrow1
With Worksheets("Sheet2")
lastrow2 = .[A65536].End(xlUp).Row + '取得sheet2 A列末行向上第一个有值的行数
.Cells(lastrow2, ) = Sheet1.[C3].Value
.Cells(lastrow2, ) = Sheet1.[E3].Value
.Cells(lastrow2, ) = Sheet1.[G3].Value
.Cells(lastrow2, ) = Sheet1.[G4].Value
.Cells(lastrow2, ) = Sheet1.[C5].Value
.Cells(lastrow2, ) = Sheet1.[C6].Value
.Cells(lastrow2, ) = Sheet1.[C7].Value
.Cells(lastrow2, ) = Sheet1.[C8].Value
.Cells(lastrow2, ) = Sheet1.[C9].Value
.Cells(lastrow2, ) = Sheet1.[E5].Value
.Cells(lastrow2, ) = Sheet1.[E6].Value
.Cells(lastrow2, ) = Sheet1.[E7].Value
.Cells(lastrow2, ) = Sheet1.[E8].Value
.Cells(lastrow2, ) = Sheet1.[E9].Value
.Cells(lastrow2, ) = Sheet1.Cells(i, ).Value
.Cells(lastrow2, ) = Sheet1.Cells(i, ).Value
.Cells(lastrow2, ) = Sheet1.Cells(i, ).Value
.Cells(lastrow2, ) = Sheet1.Cells(i, ).Value
.Cells(lastrow2, ) = Sheet1.Cells(i, ).Value
End With
Next
'删除
Order.ClearContents
End Sub
EXCEL VBA代码,实现点击Sheet1按钮控件保存不连续单元格的数据到Sheet2中,然后清空输入内容的相关教程结束。