我有一个excel表,我使用VB程序填充。输出表可以具有可变数量的行但具有6列(A:F)。现在我希望列G具有列A中所有行的hex2dec。这是一个示例:假设列A有400行(A1:A400)然后我希望G1:G400具有值HEX2DEC(A1:A400)。但这只是行可以变化的一个例子。到目前为止我有这个代码:
Sub DataMod()
Dim i As Long, R3 As Long
R3 = 1
For i = 1 To sheet.UsedRange.Rows.Count
sheet.Cells(i, 7).Formula = "=HEX2DEC" & sheet.Cells(R3, 1)
R3 = R3 + 1
Next i
End Sub
但它不起作用。
答案 0 :(得分:1)
试试这个:
Sub DataMod()
' Get the number of rows used in Column A:
Dim NumRows as Long
NumRows = Range("A1").End(xlDown).Row
' Put the formulas in Column G all at once:
Range("G1:G" & NumRows).FormulaR1C1 = "=Hex2Dec(RC1)"
End Sub
答案 1 :(得分:1)
查看您的HEX2DEC公式字符串
()
=HEX2DEC(1234)
而不是=HEX2DEC(A1)
- 这可能是也可能不是问题i
代替R3
,它们都以相同的增量从相同的起点开始增量我建议使用FormulaR1C1,你没有变种
Sub DataMod()
Dim C As Range
For Each C In ActiveSheet.UsedRange.Columns(1).Cells
C(1, 7).FormulaR1C1 = "=HEX2DEC(RC[-6])"
Next C
End Sub
UsedRange
的危险在于它可能包含任何标题行,因此您可能希望通过在触发Sub()并使用Selection对象之前手动选择输入范围来解决此问题,例如< / p>
For Each C In Selection.Columns(1).Cells