2015-05-22 3 views
0

Я весь день ломал свой мозг этим, но для меня это просто не имеет смысла. Я использую следующий код:Если утверждения в макросе не обновляются правильно

Dim statdate As Long 
    statdate = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row 

Range("O2").Select 
Range("O2").FormulaR1C1 = "=IF(RC[-9]<TODAY(),""Booked"",""Provisional Booking"")" 
Range("O2").Copy Destination:=Range("O3:O" & statdate) 

Dim canc As Long 
    canc = ActiveSheet.Range("AH" & Rows.Count).End(xlUp).Row 

Range("AI2").FormulaR1C1 = "=IF(RC[-1]=""Yes"",""Cancelled"",""Booked"")" 
Range("AI2").Copy Destination:=Range("AI3:AI" & canc) 

Он должен работать два статусов для двух различных областей - но это возвращает только «Бронирование» в колонке «O» и «Бронирование» в колонке «AH». Это было бы нормально, и обычно я искал бы ошибку, но когда я вернусь к электронной таблице и выделим любую из ячеек в столбце «О», которая должна быть «Предварительное бронирование» или ячейки в столбце «AH», которые должны быть «Отменены» «чтобы проверить отдельные формулы, они меняются на правильный результат после выделения ячеек в« AH »и« F »соответственно.

В принципе, формула правильная, но она не изменится, пока я не проведу вручную каждую ячейку.

Можете ли вы, ребята, подумать, почему это может быть. Я бы очень признателен за любую помощь в этом.

Спасибо заранее

[EDIT: я просто попытался сохранение и закрытие документа и это автоматически обновляются все поля, которые необходимо его. Однако я ищу, чтобы скопировать и вставить значения в 3-й столбец с этой макрокомандой и, как значения, это обыкновения быть обновлена ​​после того, как я сохранить документ]

+0

Не точно, что может быть причиной этого, но почему бы не добавить немного кода, который выбирает каждую ячейку диапазона? Это должно их обновить. – USFBS

+0

Извиняется, он не выбирает ячейку, которая ее обновляет. Он выбирает ячейку и затем выбирает конкретные ячейки, к которым относится код, внутри этой ячейки, которая их обновляет. Я попытался выбрать все, но безрезультатно –

ответ

0

Вы должны попробовать использовать activeworksheet.calculate как раз перед макро отделок

+0

Я даже не знал, что это вариант, - прорезал его непосредственно перед передачей значений в третий столбец, и он работал как шарм. Большое вам спасибо за вашу помощь! –

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