【发布时间】:2016-05-02 09:48:53
【问题描述】:
我有很多数据(数字)在我试图归零的几个工作表中带有标题。对每一列执行如下操作:取列中第一行的值,然后从列中的所有行中减去该值。
我已经整理了这段代码(可能不是最好的方法,但我是 VBA 新手,所以 :))
Dim ws As Worksheet
Dim Header As Range, Coldata As Range
Dim firstrow As Long
Dim cell As Range, cell2 As Range
Set ws = ActiveSheet
Set Header = ws.Range("B5:CJ5")
For Each cell In Header
If cell Is Nothing Then Exit For
firstrow = cell.Offset(2).Value
***Set Coldata = ws.Range(cell.offset(3),cell.Offset(3)).End(xlDown)***
cell.Value = 0
For Each cell2 In Coldata
cell2.Value = cell2.Value - firstrow
Next
Next
MsgBox "Done zeroing"
这个子在我正在处理的工作簿的模块下。每当我从 VBA 窗口内运行此子程序时,它都会给我在代码行的描述中说明的错误,周围有 ****。
当我尝试从工作表运行它时,它显示无法运行宏。该工作表中的宏可能不可用,或者所有宏都可能被禁用。问题是我在它工作的同一个模块中运行另一个宏,所以禁用宏是不可能的。
我错过了什么?
提前致谢!
编辑,我修好了.. 但是运行它需要这么多时间? Excel 在我运行时会冻结吗?
【问题讨论】: