我能够执行特定的公式并将其分配给单元格:
my_cell = Int(Cells(row, my_col).Value2) '# "row" is a row, "my_col" is a column, "i" is a counter
Cells(row, i).FormulaR1C1 = "=a working formula that returns a date as a number"
Cells(row, i).NumberFormat = "dd/mm/yyyy" '# format the number as a date
但我实际上只想写公式返回的值,而不是在选择目标单元格时显示整个公式的语法。
我发现了这种方法并且有效:
my_cell = Int(Cells(row, my_col).Value2)
Cells(row, i).FormulaR1C1 = "=a working formula that returns a date as a number"
Cells(row, i).Copy
Cells(row, i).PasteSpecial xlPasteValues
Cells(row, i).NumberFormat = "dd/mm/yyyy"
但它似乎很慢(我有很多数据)并且没有真正作为解决方案执行,因为它复制并粘贴了值而不是直接评估和分配它。
是否有更快,更直接的方法来完成此任务?
答案 0 :(得分:3)
大多数工作表功能在VBA中可用。语法是:
WorksheetFunction.SomeFunction(arg1, arg2, ...)
所以,您可以使用以下代码:
With WorksheetFunction
Cells(row, i)= 'Your formula, with function preceeded with dot .
End With
某些工作表函数不能以这种方式使用,例如LEFT,但通常有等效的VBA函数,因此我的类型为Left而不是dot。
答案 1 :(得分:1)