Cześć, na co dzień w pracy korzystamy z dużej ilości plików Excela, dane głównie pochodzą z baz danych, więc wiele plików to po prostu makra, które wyciągają dane do arkuszy jakimś zapytaniem. Poniżej kod VBA, który wyciąga dane.

Sub test()

zapytanie = Sheets("start").Range("C1").Value

adres = "Driver={Microsoft ODBC for Oracle};server=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xx.xx.xxx)(PORT=xxxx)))(CONNECT_DATA=(SID=xxxx)));Uid=xxx;Pwd=xxx;"
With Sheets("pom").QueryTables.Add(Connection:="ODBC;" & adres, Destination:=Sheets("pom").Range("A1"))
                   .CommandText = zapytanie
                   .Refresh BackgroundQuery:=False
End With
End Sub

W przypadku prostych zapytań:

SELECT * 
FROM TABELA
WHERE DATA = '2018-05-29"

Nie ma najmniejszego problemu z tym, żeby w nowym arkuszu pojawiły się wyniki.
Problem pojawia się przy takim zapytaniu, w którym jest trochę działań matematycznych.

SELECT WALUTA, DATA_DF - DATA_DANYCH as DNI, DATA_DF as DATA,  
DF_FINAL DF FROM ( SELECT  DATA_DANYCH, WALUTA, DATA_DF,  DAT_DOL, DF_DOL, DAT_GORA, DF_GORA,  
CASE WHEN DATA_DF = DAT_DOL THEN DF_DOL  
ELSE  
ROUND(POWER(DF_DOL, (DAT_GORA - DATA_DF)/(DAT_GORA - DAT_DOL) * (DATA_DF - DATA_DANYCH)/(DAT_DOL - DATA_DANYCH))  
*  POWER(DF_GORA, (DATA_DF - DAT_DOL)/(DAT_GORA - DAT_DOL) * (DATA_DF - DATA_DANYCH)/(DAT_GORA - DATA_DANYCH)),6) END  
DF_FINAL  
FROM ( SELECT DF2.DATA_DF DATA_DF, DF2.DATA_DATE DATA_DANYCH, DF2.DF_DATE DAT_DOL, DF2.DF DF_DOL,  
DF2.DF_DATE_NEXT DAT_GORA, DF2.DF_NEXT DF_GORA, DF2.CURRENCY WALUTA  
FROM ( SELECT CASE WHEN DAT.DATA_DF >= DF.DF_DATE AND DAT.DATA_DF < DF.DF_DATE_NEXT THEN 'OK'  
ELSE  
'USUNAC' END ZNACZ, DAT.*, DF.*  
FROM (SELECT data_date,   df_date, df, currency,    
LEAD(DF_DATE) OVER (PARTITION BY CURRENCY ORDER BY DF_DATE) df_date_next,   
LEAD(DF) OVER (PARTITION BY CURRENCY ORDER BY DF_DATE) df_next    
FROM (SELECT data_date, df,currency, TO_DATE(df_date,'YYYY-MM-DD') df_date, T_NUMBER, T_UNIT  
FROM  TABELA_PRZYKLAD      
WHERE DATA_DATE = '2018-05-29'      
AND CONFIG_TYPE = 'PROD'   )) DF,  
(SELECT TO_DATE('2018-05-29') + ROWNUM DATA_DF FROM DUAL CONNECT BY LEVEL <= 7200) DAT) DF2 WHERE DF2.ZNACZ = 'OK')  
ORDER BY WALUTA, DATA_DF) WHERE WALUTA IN ('PLN')

W przykladku sql developera nie ma najmniejszego problemu, z wyciągnięciem danych z powyższego zapytania. Niestety w excelu pojawiają się tylko nagłówki.
Czy ktoś orientuje się z czego może wynikać ten problem? Czy to jakaś ułomność excela?