批量改变Excel表中的值
提高工作效率的小脚本.
用户要求:有一份报价格,要求把C列的所有报价都上涨3美元,把D列的报价都上涨1.7美元.由于每列的行数很多,并且价格各不相同,如果逐个更新,工作量将会很大,并且容易出错.下面这个脚本可以又快又准地解决这个需求.
Sub changeValue()
'用户输入
Dim userInput
userInput = Application.InputBox("输入开始单元格,结束单元格,以及需要添加的数字,格式如A1,A2,2.5")
'转为数列
Dim arrUserInput
arrUserInput = Split(userInput, ",")
'起始单元格
Dim Cx, Cy
Cx = Mid(arrUserInput(0), 1, 1)
Cy = Mid(arrUserInput(0), 2, 2)
'结束单元格
Dim Dx, Dy
Dx = Mid(arrUserInput(1), 1, 1)
Dy = Mid(arrUserInput(1), 2, 2)
'涨幅
Dim upRange
upRange = arrUserInput(2)
'转换
Dim Ex, Ey, Fx, Fy
Ex = Asc(Cx) - 64
Ey = Cy
Fx = Asc(Dx) - 64
Fy = Dy
'进行操作
Dim i, j
For i = Ey To Fy
For j = Ex To Fx
Dim value
value = Cells(i, j)
Cells(i, j) = value + upRange
Next
Next
End Sub
将上面这段代码置入Excel的宏中,需要更新报价的时候,执行ChangeValue这个宏,按要求键入对应的起始单元格,结束单元格,以及增加的值即可.