0
我在SQL查询中构建公式,然后使用EXCEL VBA函数CopyFromRecordSet在电子表格中插入公式。公式的文本正确输入,但仅显示为文本并且不计算。计算模式设置为自动,单元格格式为“常规”而不是“文本”。从记录集复制Excel计算公式时不计算
为了获得计算公式,我必须输入每个单元格,就好像我要编辑公式一样,然后离开单元格而不必实际编辑任何内容。只是进入和退出的动作会导致公式计算,但必须在每个单元上手动完成。
Sub Test1()
Application.ReferenceStyle = xlR1C1
Dim qry As String
qry = "SELECT mYEAR, '=RC[-1]*12' AS xFormula FROM tblYears"
Dim Datacmd As ADODB.Command
Set Datacmd = New ADODB.Command
Datacmd.CommandText = qry
Dim Datars As ADODB.Recordset
Set Datars = DB.RunSelect(GV.ConStr_Config, Datacmd)
ActiveSheet.Range("A1").CopyFromRecordset Datars
Application.ReferenceStyle = xlA1
End Sub
这导致了这个...
1 2
1 2012 =RC[-1]*12
2 2013 =RC[-1]*12
3 2014 =RC[-1]*12
然后我需要双击每个公式单元格开始编辑,然后我就可以点击另一个单元格退出公式,并会计算。
1 2
1 2012 24144
2 2013 24156
3 2014 24168
我试着加入现在计算按钮;并在开头添加VBA命令APPLICATION.CALCULATION = xlCalculationManual,最后添加APPLICATION.CALCULATE(和CalculateFULL)。
我无法在查询中进行计算,公式需要与最终产品中的Excel数据交互。
(该DB.RunSelect功能是我执行查询并返回断开连接的记录方法。)
感谢
谢谢,我希望避免迭代细胞像这样,但它是设置公式的正确方法。 – Johnny3663 2014-09-22 19:12:47