我想运行一个excel vba,它将从E列开始,一旦找到值=“capa”将进入下面两个单元格,计算该单元格的hex2dec值,由单元格显示值“capa”在F列中继续向下搜索E列。 到目前为止,我已经使用了以下内容,但它不起作用:
For Each cell In Range("E:E")
If cell.Value = "Capa" Then
ActiveCell.Offset.FormulaR1C1 = "=HEX2DEC(R[2]C[-1])"
End If
Next cell
谢谢!
答案 0 :(得分:0)
这样的事情怎么样?
这将在volumE中搜索“Capa”,如果找到,将使用E列中“Capa”正下方的值将公式放在F列中
Sub CapaSearch()
Dim cl As Range
For Each cl In Range("E:E")
If cl.Value = "Capa" Then
cl.Offset(0, 1).Formula = "=HEX2DEC(" & cl.Offset(1, 0) & ")"
End If
Next cl
End Sub
答案 1 :(得分:0)
你真的想限制循环,所以你不要遍历整个工作表(Excel 2007+中的1,000,000多行)
此外,将源数据复制到变体数组也会加快速度。
试试这个
Sub Demo()
Dim dat As Variant
Dim i As Long
With ActiveSheet.UsedRange
dat = .Value
For i = 1 To UBound(dat, 1)
If dat(i, 6 - .Column) = "Capa" Then
.Cells(i, 7 - .Column).FormulaR1C1 = "=HEX2DEC(R[2]C[-1])"
End If
Next
End With
End Sub