EXCEl表格中.如何用VBA来做到三列相加:Excel中,我想在 H列实现 把 B列 的

EXCEl表格中.如何用VBA来做到三列相加:Excel中,我想在 H列实现 把 B列 的数 乘以 10^8 然后加上 C列 的数 乘以 10^5 然后再加上D列的数乘以10^2 。 以第三行为例.H3=B3*10^8+C3*10^5+D3*10^2 我不要函数公式,我要用vBA实现.要求如下:1、从第三行开始,6万行结束。 2、当B、C、D三列单元格内的数据发生变化时.同行的H列数据也要有变化。3、如果BCD数据是从上面一行复制的.也要有效
万年金刚钻提供的代码出了点问题,请大家在帮看看吧。

该代码在运行时显示运行时错误424, 要求对象 按调试后如图

Public rOldSelect As Range

Private Sub Worksheet_Activate()
Set rOldSelect = Range("A1")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Set rC = Target
If rC.Row > 2 And rC.Row < 60001 And _
(rC.Column = 2 Or rC.Column = 3 Or rC.Column = 4) Then
myCalcu Target

myCalcu rOldSelect
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
myCalcu rOldSelect
Set rOldSelect = Target
myCalcu rOldSelect
End Sub
Private Sub myCalcu(ByVal Target As Range)
Dim rC As Range
For Each rC In Target
If rC.Row > 2 And rC.Row < 60001 And _
(rC.Column = 2 Or rC.Column = 3 Or rC.Column = 4) Then
Cells(rC.Row, 8) = Cells(rC.Row, 2) * 10 ^ 8 + Cells(rC.Row, 3) * 10 ^ 5 + Cells(rC.Row, 4) * 10 ^ 2
End If
Next
End Sub
现在完美了,单个改变也好、选中区域下拉也好、选中区域清除也好,都可以计算了追问

因为很多数据都是同时从上一行复制的,请问有没有同时对三个单元格同时生效的代码呢

追答

上面刚刚修改好,发出,你就追问了,目前上面的代码试过吗?

追问

该代码在运行时显示运行时错误424,   要求对象     按调试后如图

追答

再在thisworkbook的open事件中加一段强行激活Sheet1吧:
Private Sub Workbook_Open()
Me.Worksheets(2).Select
Me.Worksheets(1).Select
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-26
1、循环, for i=3 to 60000
2、用change事件
3、用了change事件就能实现追问

能把代码祥细点吗?我是菜鸟

相似回答