在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
展开
 我来答
cm6705
2010-08-06 · TA获得超过328个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:400万
展开全部
不用插入按钮,直接用工作表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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2010-08-05 · TA获得超过6666个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2705万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
simonleewin
2010-08-08 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:32.4万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
如同神一般菜鸟
2010-08-05 · TA获得超过633个赞
知道小有建树答主
回答量:589
采纳率:100%
帮助的人:352万
展开全部
vba不难写。不过你意思好难懂。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式