SQL 쿼리에 수식을 작성한 다음 ExcelFBA 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