如何用EXCEL公式达到以下效果,最好能用VBA做成按键

来源:百度知道 编辑:UC知道 时间:2024/05/21 20:00:50
A表
发货日期 发货金额 开票日期 开票金额
2008-1-12 5000 2008-1-16 2000
2008-2-16 4500 2008-1-18 2500
2008-2-10 3500

B表
发货日期 发货金额 开票日期 开票金额
2008-1-12 2000 2008-1-16 2000
2008-1-12 2500 2008-1-18 2500
2008-1-12 500 2008-2-10 500
2008-2-16 3000 2008-2-10 3000
2008-2-16 1500 ......我的意思是把数据生成B表中的效果.就是说开票金额冲减最先发货金额,以此类推.

'方法1一个很烂的程序,但的确可以实现你需要的功能,看这个问题都问第二次了.所以只好现丑
'先在sheet1加一个VB按钮,然后在按钮单击事件中加入以下代码
Private Sub CommandButton1_Click()
Sheets(1).Range("A1").Select
ActiveCell.CurrentRegion.Copy
Sheets("Sheet2").Select
Sheets(2).Range("A1").Select
ActiveSheet.Paste
ActiveCell.CurrentRegion.Columns(4).Select
Selection.Copy
Sheets(2).Range("b1").Select
ActiveSheet.Paste
Sheets(2).Range("b1") = "发货金额"
End Sub

方法2 ----更好 (不需按钮,将下面代码拷到sheet2的代码中就OK了)
Private Sub Worksheet_Change(ByVal Target As Range)
X1 = 2 '定义X1为发货金额列,这里定为第2列,可根据实际更改
X2 = 4 'X2为开票金额列,这里定为第4列,可根据实际更改
myrow = Target.Row
mycol = Target.Column
If mycol <> X1 Then Sheets(2).Cells(myrow, mycol) = Target.Value
If mycol = X2 Then Sheets(2).Cells(myrow, X1) = Target.Value
End Sub

整列复制粘贴就可以了呀,用得着这么麻烦呀