2014-02-20 21 views
1

У меня есть этот код:Excel 2010 VBA Ошибка 1004 с формулой

Dim fStrecke As String 
fStrecke = "=A" & z & "*B" & z & "*C" & z 
wks.Cells(z, "L").Formula = fStrecke 

Dim fZeit As String 
fZeit = "=IF(ISBLANK(H" & z & ");((A" & z & "*B" & z & "*I" & z & ")-I" & z & ")+(A" & z & "*B" & z & "*J" & z & ");(A" & z & "*B" & z & "*H" & z & "))" 
wks.Cells(z, "K").Formula = fZeit 

Первая формула работает и для второго я получаю сообщение об ошибке выполнения 1004. Любая идея? Я отформатировал столбец K как пользователь, определенный с помощью «m: ss».

ответ

6

Есть два варианта для вас:

  1. использование .FormulaLocal свойства: wks.Cells(z, "K").FormulaLocal = fZeit
  2. использование запятая , в качестве разделителя вместо точки с ; (даже если ваши локальными настройки требуют ; в стандартном отделителя):

fZeit = "=IF(ISBLANK(H" & z & "),((A" & z & "*B" & z & "*I" & z & ")-I" & z & ")+(A" & z & "*B" & z & "*J" & z & "),(A" & z & "*B" & z & "*H" & z & "))" 
wks.Cells(z, "K").Formula = fZeit 
+1

он работает ... спасибо :-) – bumblebeeman

+0

Какая шутка! Я давно искал это решение. Разделитель из моих локальных настроек - ';' так вот что я использовал в своем коде. –

Смежные вопросы