在EXCEL中,求快速修改某一列值的方法或VBA代码
a1用来输入增量值,b1用来输入减量值,C1=记录总数,有如下表a2b2c2编号序号数值123011223025322036有成千上万条数据,想一次批量更改C2的值,以a...
a1用来输入增量值,b1用来输入减量值,C1=记录总数,有如下表
a2 b2 c2
编号 序号 数值
123 01 1
223 02 5
322 03 6
有成千上万条数据,想一次批量更改C2的值,以a1或b1为增减量,一次批量修改a2非空的c2的值.最好给VBA代码 谢谢.两个按钮,一个按钮用来做加运算,一个按钮做减运算.
说错了 是想修改C列从第2行开始以下的值 如C3 C4....C12345 展开
a2 b2 c2
编号 序号 数值
123 01 1
223 02 5
322 03 6
有成千上万条数据,想一次批量更改C2的值,以a1或b1为增减量,一次批量修改a2非空的c2的值.最好给VBA代码 谢谢.两个按钮,一个按钮用来做加运算,一个按钮做减运算.
说错了 是想修改C列从第2行开始以下的值 如C3 C4....C12345 展开
展开全部
不用插入按钮,直接用工作表Change事件就可以了.右键单击工作表标签,在右键菜单中选择[查看代码].在代码编辑区复制粘贴以下代码:
'当单元格值更改时发生事件
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
Dim rng As Range
Application.ScreenUpdating = False '关闭屏幕刷新,加快响应速度
For Each rng In Range("c3", [c65536].End(3)) '遍历C列数据引用区域
If rng(1, -1) <> "" Then '如果A列对应单元格值不等于空
If Target.Address = "$A$1" Then '如果输入数据单元格是A1
rng = rng + Target.Value '将C列单元格增加值
Else '否则
rng = rng - Target.Value'将C列单元格减少值
End If
End If
Next
Application.ScreenUpdating = True '恢复屏幕刷新
End If
End Sub
'当单元格值更改时发生事件
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
Dim rng As Range
Application.ScreenUpdating = False '关闭屏幕刷新,加快响应速度
For Each rng In Range("c3", [c65536].End(3)) '遍历C列数据引用区域
If rng(1, -1) <> "" Then '如果A列对应单元格值不等于空
If Target.Address = "$A$1" Then '如果输入数据单元格是A1
rng = rng + Target.Value '将C列单元格增加值
Else '否则
rng = rng - Target.Value'将C列单元格减少值
End If
End If
Next
Application.ScreenUpdating = True '恢复屏幕刷新
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a1作为增量,输入负值就相当于减法了。自己把它连接到按钮会吧,不会的话,Hi 我!
Option Explicit
Sub 宏1()
'
' 宏1 Macro
' user 记录的宏 2010-8-5
'
Dim i%
For i = 3 To [a65536].End(xlUp).Row
If Cells(i, 1) <> "" Then Cells(i, 3) = Cells(i, 3) + [a1]
Next i
'
End Sub
Option Explicit
Sub 宏1()
'
' 宏1 Macro
' user 记录的宏 2010-8-5
'
Dim i%
For i = 3 To [a65536].End(xlUp).Row
If Cells(i, 1) <> "" Then Cells(i, 3) = Cells(i, 3) + [a1]
Next i
'
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub add() '增加
For i = 2 To Cells(1, 3) + 1
If Cells(i, 1).Value <> "" Then
Cells(i, 3) = Cells(i, 3) + Cells(1, 1)
End If
Next
End Sub
Sub minus() '减少
For i = 2 To Cells(1, 3) + 1
If Cells(i, 1).Value <> "" Then
Cells(i, 3) = Cells(i, 3) - Cells(1, 2)
End If
Next
End Sub
For i = 2 To Cells(1, 3) + 1
If Cells(i, 1).Value <> "" Then
Cells(i, 3) = Cells(i, 3) + Cells(1, 1)
End If
Next
End Sub
Sub minus() '减少
For i = 2 To Cells(1, 3) + 1
If Cells(i, 1).Value <> "" Then
Cells(i, 3) = Cells(i, 3) - Cells(1, 2)
End If
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vba不难写。不过你意思好难懂。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询